def test_case(self, info, **kwargs): '''{info}''' try: if kwargs["sql_cheack"]: # 存在sql校验,获取初期余额 res = mysql.sql_read(kwargs["sql_cheack"], self.member_id) amount_prime = res["leave_amount"] respone = com_request(TestRecharge, self.Worksheet_name, **kwargs, token=self.token) if kwargs["sql_cheack"]: # 存在sql校验,获取充值后余额 res = mysql.sql_read(kwargs["sql_cheack"], self.member_id) amount_new = res["leave_amount"] amount = amount_new - amount_prime print("实际充值:", float(amount)) print("预期充值:", float(self.params["amount"])) self.assertEqual(float(amount), float(self.params["amount"])) # 校验充值的余额实际与预期 com_assertEqual(self, respone, eval(kwargs["expect"])) except AssertionError as e: log.error(f"用例--{info}--执行失败", exc_info=True) self.excel.excel_write(self.Worksheet_name, kwargs["id"], "失败") raise e else: log.info(f"用例--{info}--执行成功", exc_info=False) self.excel.excel_write(self.Worksheet_name, kwargs["id"], "成功")
def test_case(self, info, **kwargs): '''{info}''' try: if kwargs["sql_cheack"]: # 存在sql校验,获取投资的金额 sql = "select leave_amount from futureloan.member where id=%s" leaveamount_b = mysql.sql_read(sql, self.member_id)["leave_amount"] # 保留投资前的余额 sql = "select count(*) from futureloan.financelog where pay_member_id=%s" count_b = mysql.sql_read(sql, self.member_id)["count(*)"] # 保留投资前的条目数 respone = com_request(TestInvest, self.Worksheet_name, **kwargs, token=self.token) if respone["code"] == 0: # 当投资成功时减去已投资,不论预期是否成功 TestInvest.amount -= int(self.params["amount"]) com_assertEqual(self, respone, eval(kwargs["expect"])) if kwargs["sql_cheack"]: # 存在sql校验,获取投资的金额 sql = "select amount from futureloan.invest where id=%s" res = mysql.sql_read(sql, jsonpath(respone, "$..id")) self.assertEqual(decimal.Decimal(res["amount"]), decimal.Decimal(self.params["amount"])) # 校验投资金额与预期 sql = "select leave_amount from futureloan.member where id=%s" leaveamount_e = mysql.sql_read(sql, self.member_id)["leave_amount"] # 保留投资后的余额 self.assertEqual(leaveamount_b-leaveamount_e, decimal.Decimal(self.params["amount"])) # 校验投资后条目数与预期 sql = "select count(*) from futureloan.financelog where pay_member_id=%s" count_e = mysql.sql_read(sql, self.member_id)["count(*)"] # 保留投资后的条目数 self.assertEqual(count_e-count_b, 1) # 校验条目数 except AssertionError as e: log.error(f"用例--{info}--执行失败", exc_info=True) self.excel.excel_write(self.Worksheet_name, kwargs["id"], "失败") raise e else: log.info(f"用例--{info}--执行成功", exc_info=False) self.excel.excel_write(self.Worksheet_name, kwargs["id"], "成功")
def email_get(params_list, cls=None): if "new" in params_list: while True: email = f"{random.randint(0,999999999)}@qq.com" sql = "SELECT count(email) FROM test.auth_user WHERE email=%s;" res = mysql.sql_read(sql, email) if res["count(email)"] == 0: break elif "exist" in params_list: sql = "SELECT email FROM test.auth_user where 1 ORDER BY rand() LIMIT 1;" res = mysql.sql_read(sql) email = res["email"] return email
def username_get(params_list, cls=None): if "new" in params_list: while True: username = data_create("str", params_list[2]) sql = "SELECT count(username) FROM test.auth_user WHERE username=%s;" res = mysql.sql_read(sql, username) if res["count(username)"] == 0: break elif "unadmin" in params_list: username = eval(config.get("PRESET", "unadmin_params"))["username"] elif "exist" in params_list: sql = "SELECT username FROM test.auth_user WHERE 1 ORBDER BY rand() LIMIT 1;" res = mysql.sql_read(sql) username = res["username"] return username
def test_case(self, info, **kwargs): '''{info}''' try: respone = com_request(TestAudit, self.Worksheet_name, **kwargs, token=self.admin_token) com_assertEqual(self, respone, eval(kwargs["expect"])) if kwargs["sql_cheack"]: # 存在sql校验,获取审核项目状态 res = mysql.sql_read(kwargs["sql_cheack"], self.loan_id) if self.params["approved_or_not"]: statue = 2 else: statue = 5 print("实际项目状态:", res["status"]) print("预期项目状态:", statue) self.assertEqual(res["status"], statue) # 校验更新后的状态与预期 TestAudit.loan_id_pass = jsonpath(self.params, "$..loan_id")[0] except AssertionError as e: log.error(f"用例--{info}--执行失败", exc_info=True) self.excel.excel_write(self.Worksheet_name, kwargs["id"], "失败") raise e else: log.info(f"用例--{info}--执行成功", exc_info=False) self.excel.excel_write(self.Worksheet_name, kwargs["id"], "成功")
def member_id_get(mark, cls): '''替换*member参数''' if "exist" in mark: member_id = getattr(cls, mark[0]) elif "new" in mark: while True: sql = "select id from futureloan.member where 1 order by rand() limit 10;" # 截取一个已注册id res = mysql.sql_read(sql) if int(res["id"]) != int(getattr(cls, mark[0])): member_id = res["id"] break elif "nuexist" in mark: sql = "select max(id) from futureloan.member;" # 截取一个未注册id res = mysql.sql_read(sql) member_id = res["max(id)"] + 1 elif "unadmin" in mark: member_id = eval(config.get("SETUPDATA", "params"))["mobile_phone"] elif "admin" in mark: member_id = eval(config.get("SETUPDATA", "admin_params"))["mobile_phone"] return member_id
def name_get(params_list, cls=None): if params_list[0] == "name": database_name = "tb_projects" elif params_list[0] == "tiname": database_name = "tb_interfaces" elif params_list[0] == "tcname": database_name = "tb_testcases" if "new" in params_list: while True: name = data_create("str", params_list[2], str_type=params_list[3]) sql = f"SELECT count(name) FROM test.{database_name} WHERE name = %s;" res = mysql.sql_read(sql, name) if res["count(name)"] == 0: break elif "exist" in params_list: sql = f"SELECT name FROM test.{database_name} WHERE 1 ORDER BY rand() LIMIT 1;" res = mysql.sql_read(sql) name = res["name"] elif "str" in params_list: name = data_create("str", params_list[2], str_type=params_list[3]) return name
def phone_create(mark): '''替换*phone参数''' if "new" in mark: while True: phone = "156{:0<8}".format(random.randint(0, 99999999)) # 创建新号码 sql = "select mobile_phone from futureloan.member where mobile_phone=%s;" res = mysql.sql_read(sql, phone) # 执行sql语句 if not res: # 返回结果未None表示无该手机号码 break elif "exist" in mark: phone = eval(config.get("PRESET", "loan_params"))["mobile_phone"] # 提取一个已注册手机 return phone
def projects_interfaces_get(params_list, cls=None): if params_list[0] == "projects": database_name = "tb_projects" elif params_list[0] == "interfaces": database_name = "tb_interfaces" if "id" in params_list: if "exist" in params_list: id = eval(config.get("PRESET", params_list[0]))["id"] elif "new" in params_list: sql = f"SELECT max(id) FROM test.{database_name};" res = mysql.sql_read(sql) id = int(res["max(id)"]) + 100 return id
def loan_id_get(mark, cls): '''替换*loan_id参数''' if "exist" in mark: # sql = "select id from futureloan.loan where status=2 order by rand() limit 1;" # 更新目标id的余额 # res = mysql.sql_read(sql) # loan_id = res["id"] # 截取一个竞标项目 return getattr(cls, "loan_id") elif "pass" in mark: return getattr(cls, "loan_id_pass") elif "unbidding" in mark: sql = "select id from futureloan.loan where status = 3 order by rand() limit 1;" # 截取一个非竞标项目 res = mysql.sql_read(sql) member_id = res["id"] return member_id
def test_case(self, info, **kwargs): '''{info}''' try: respone = com_request(TestRegister, self.Worksheet_name, **kwargs) com_assertEqual(self, respone, eval(kwargs["expect"])) if kwargs["sql_cheack"]: # 存在sql校验,获取新增注册名称 res = mysql.sql_read( kwargs["sql_cheack"], jsonpath(respone.json(), "$..username")[0]) print("实际项目名称:", res["username"]) print("预期项目名称:", self.params["username"]) self.assertEqual(res["username"], self.params["username"]) # 校验更新后的昵称与预期 except AssertionError as e: log.error(f"用例--{info}--执行失败", exc_info=True) self.excel.excel_write(self.Worksheet_name, kwargs["id"], "失败") raise e else: log.info(f"用例--{info}--执行成功", exc_info=False) self.excel.excel_write(self.Worksheet_name, kwargs["id"], "成功")
def test_case(self, info, **kwargs): '''{info}''' try: respone = com_request(TestUpdate, self.Worksheet_name, **kwargs, token=self.token) if kwargs["sql_cheack"]: # 存在sql校验,获取更新后昵称 res = mysql.sql_read(kwargs["sql_cheack"], self.member_id) print("实际昵称:", res["reg_name"]) print("预期昵称:", self.params["reg_name"]) self.assertEqual(res["reg_name"], self.params["reg_name"]) # 校验更新后的昵称与预期 com_assertEqual(self, respone, eval(kwargs["expect"])) except AssertionError as e: log.error(f"用例--{info}--执行失败", exc_info=True) self.excel.excel_write(self.Worksheet_name, kwargs["id"], "失败") raise e else: log.info(f"用例--{info}--执行成功", exc_info=False) self.excel.excel_write(self.Worksheet_name, kwargs["id"], "成功")
def setUpClass(cls): '''随机获取用户id''' cls.excel.wb = openpyxl.load_workbook(cls.excel.path) # 重新载入workbook sql = "select id from futureloan.member where 1 order by rand() limit 10;" # 截取一个已注册id res = mysql.sql_read(sql) cls.member_id = res["id"]
def leaveamount_get(mark, cls): '''替换*amount参数''' if "over" in mark: sql = "UPDATE futureloan.member set leave_amount = 0 where id=%s;" # 更新目标id的余额 mysql.sql_read(sql, getattr(cls, "member_id")) # 执行sql语句 return getattr(cls, "leave_amount_max")