def test_withdraw(self, case): # 准备用例数据 url = conf.get("env", "url") + case["url"] case["data"] = case["data"].replace("#member_id#", str(self.member_id)) data = eval(case["data"]) headers = eval(conf.get("env", "headers")) headers["Authorization"] = self.token_value method = case["method"] expected = eval(case["expected"]) row = case["case_id"] + 1 # 发送请求前的金额 sql = "select leave_amount from futureloan.member where mobile_phone = {}".format( conf.get("test_case", "mobile_phone")) pre_money = self.basedata.find_one(sql=sql)["leave_amount"] # 发送请求 response = self.request.send_requests(method=method, url=url, json=data, headers=headers) res = response.json() # 断言 try: self.assertEqual(expected["code"], res["code"]) self.assertEqual(expected["msg"], res["msg"]) if expected["code"] == 0: end_money = self.basedata.find_one(sql=sql)["leave_amount"] self.assertEqual(pre_money-end_money,Decimal(str(data["amount"]))) except AssertionError as e: print("预期结果:",expected) print("实际结果:",res) self.execl.write_data(row=row, column=8, value="未通过") log.error("用例:{} ,执行".format(case["title"]) + color.white_red("未通过")) log.exception(e) raise e else: self.execl.write_data(row=row, column=8, value="通过") log.info("用例:{},执行".format(case["title"]) + color.white_green("通过"))
def test_login(self, case): # 准备用例数据 url = conf.get("env", "url") + case["url"] data = eval(case["data"]) headers = eval(conf.get("env", "headers")) method = case["method"] expected = eval(case["expected"]) row = case["case_id"] + 1 # 发送请求 reponse = self.send.send_requests(url=url, method=method, headers=headers, json=data) res = reponse.json() # 断言 try: self.assertEqual(expected["code"], res["code"]) self.assertEqual(expected["msg"], res["msg"]) except AssertionError as e: self.excel.write_data(row=row, column=8, value="不通过") log.error("用例:{} ,执行".format(case["title"]) + color.white_red("不通过")) log.exception(e) raise e else: self.excel.write_data(row=row, column=8, value="通过") log.info("用例:{} ,执行".format(case["title"]) + color.white_green("通过"))
class TestRecharge(unittest.TestCase): excel = Readexcel(os.path.join(data_dir, "api_cases_excel.xlsx"), "recharge") cases = excel.read_data() send = HandleRequests() basedata = HandleDB() @classmethod def setUpClass(cls): url = conf.get("env", "url") + "/member/login" data = { "mobile_phone": conf.get("test_case", "mobile_phone"), "pwd": conf.get("test_case", "pwd") } headers = eval(conf.get("env", "headers")) method = "post" login_response = cls.send.send_requests(url=url, method=method, headers=headers, json=data) data = login_response.json() token_type = jsonpath.jsonpath(data, "$..token_type")[0] token = jsonpath.jsonpath(data, "$..token")[0] cls.token_value = token_type + " " + token cls.member_id = jsonpath.jsonpath(data, "$..id")[0] @data(*cases) def test_recharge(self, case): # 准备用例数据 url = conf.get("env", "url") + case["url"] headers = eval(conf.get("env", "headers")) headers["Authorization"] = self.token_value case["data"] = case["data"].replace("#member_id#", str(self.member_id)) data = eval(case["data"]) method = case["method"] expected = eval(case["expected"]) row = case["case_id"] + 1 # 发送请求 if eval(case["expected"])["code"] == 0: sql = "select leave_amount from futureloan.member where mobile_phone={}".format( conf.get("test_case", "mobile_phone")) pre_data = self.basedata.find_one(sql)["leave_amount"] response = self.send.send_requests(method=method, url=url, json=data, headers=headers) res = response.json() # 断言 try: self.assertEqual(expected["code"], res["code"]) self.assertEqual(expected["msg"], res["msg"]) if expected["code"] == 0: end_data = self.basedata.find_one(sql)["leave_amount"] self.assertEqual(Decimal(str(data["amount"])), end_data - pre_data) except AssertionError as e: print("预期结果:", expected) print("实际结果:,", res) self.excel.write_data(row=row, column=8, value="不通过") log.error("用例:{} ,执行".format(case["title"]) + color.white_red("不通过")) log.exception(e) raise e else: self.excel.write_data(row=row, column=8, value="通过") log.info("用例:{} ,执行".format(case["title"]) + color.white_green("通过"))
def test_register(self, case): # 准备用例数据 url = conf.get("env", "url") + case["url"] headers = eval(conf.get("env", "headers")) case["data"] = case["data"].replace("#phone#",self.randam_phone()) data = eval(case["data"]) method = case["method"] expected = eval(case["expected"]) row = case["case_id"] + 1 # 发送请求 response = self.send.send_requests(method=method, url=url, json=data, headers=headers) res = response.json() id = jsonpath.jsonpath(res, "$..id") # 读取数据库的数据 sql = "select * from futureloan.member where mobile_phone = {}".format(self.randam_phone()) sql_data = self.basedata.find_all(sql) # 断言 try: self.assertEqual(expected["code"], res["code"]) self.assertEqual(expected["msg"], res["msg"]) if expected["code"] == 0: for i in sql_data: bd_phone = i["mobile_phone"] bd_type = i["type"] bd_reg_name = i["reg_name"] bd_id = i["id"] self.assertEqual(expected["mobile_phone"], bd_phone) self.assertEqual(expected["type"], bd_type) self.assertEqual(expected["reg_name"], bd_reg_name) self.assertEqual(0, i["leave_amount"]) self.assertEqual(id, bd_id) except AssertionError as e: self.excel.write_data(row=row, column=8, value="不通过") log.error("用例:{} ,执行".format(case["title"]) + color.white_red("不通过")) log.exception(e) raise e else: print("预期结果:", expected) print("实际结果:", res) self.excel.write_data(row=row, column=8, value="通过") log.info("用例:{} ,执行".format(case["title"]) + color.white_green("通过"))