def create_user(self, regname, pwd="test1234"): """ 创建新用户,从配置文件中获取需要获得的用户信息,然后从接口中 获得这些信息组合成字典 :param regname: 用户名 :param pwd: 密码 默认test1234 :return: 区域名、选项名、选项值组成的嵌套字典的字典 """ do_sql = OperationMysql() while True: mobile = do_sql.create_unregistered_phone() data = {"mobilephone": mobile, "pwd": pwd, "regname": regname} do_request.send_request(method="post", url=self.url, data=data) result = do_sql.get_value(sql=self.sql, args=mobile) if result: break user_info_dict = dict.fromkeys(self.user_info) for i in self.user_info: value = result[i] user_info_dict[i] = value user_info_dict["Pwd"] = pwd user_dict = {regname: user_info_dict} return user_dict do_sql.close_db() do_request.close()
def test_recharge(self, data): url = do_conifg.get_value(section="API", option="url")+data["url"] expect = data["expected"] check_sql = data["check_sql"] form_data = self.do_context.invest_parameterization(data["data"]) res = do_request.send_request(method=data["method"], url=url, data=form_data) if check_sql: if "加标成功" in res.text: check_sql = self.do_context.invest_parameterization(check_sql) mysql_data = self.do_sql.get_value(sql=check_sql) OperationContext.loan_id = str(mysql_data["Id"]) else: pass log.info(res.text) if res.status_code == 200: actual = int(res.json()["code"]) log.info(f"请求地址:{url}\n请求参数:{form_data}\n预期结果:{expect}\n实际结果:{actual}") try: self.assertEqual(expect, actual) log.info("用例执行通过\n") self.oe.write_data(row=data["case_id"]+1, actual=actual, result="PASS") except Exception as e: log.error(f"用例执行失败{e}\n") self.oe.write_data(row=data["case_id"]+1, actual=actual, result="FAIL") raise e
def register(data): url = "https://www.jb51.net/article/164055.htm" res = do_request.send_request(method="post", url=url, data=data) # if res.status_code == 200: # if json.loads(res.text["code"]) == "10001" and json.loads(res.text["status"] == 1): # return "注册成功" # elif json.loads(res.text["code"]) == "20110" and json.loads(res.text["status"] == 0): # return "手机号码已被注册" return res
def test_login(self, data): url = do_conifg.get_value(section="API", option="url")+data["url"] expect = data["expected"] form_data = self.do_context.login_parameterization(data["data"]) log.info(form_data) actual = do_request.send_request(method=data["method"], url=url, data=form_data).text log.info(f"请求地址:{url}\n请求参数:{form_data}\n逾期结果:{expect}\n实际结果:{actual}") try: self.assertEqual(expect, actual) log.info("用例执行通过\n") self.oe.write_data(row=data["case_id"]+1, actual=actual, result="PASS") except Exception as e: log.error(f"用例执行失败{e}\n") self.oe.write_data(row=data["case_id"]+1, actual=actual, result="FAIL") raise e
def test_recharge(self, data): url = do_conifg.get_value(section="API", option="url") + data["url"] expect = data["expected"] check_sql = data["check_sql"] if check_sql: check_sql = self.do_context.recharge_parameterization(check_sql) mysql_data = self.do_sql.get_value(sql=check_sql) amount_before = round(float(mysql_data["LeaveAmount"]), 2) form_data = self.do_context.recharge_parameterization(data["data"]) res = do_request.send_request(method=data["method"], url=url, data=form_data) if res.status_code == 200: actual = int(res.json()["code"]) log.info( f"请求地址:{url}\n请求参数:{form_data}\n预期结果:{expect}\n实际结果:{actual}") try: self.assertEqual(expect, actual) if check_sql: mysql_data = self.do_sql.get_value(sql=check_sql) amount_after = round(float(mysql_data["LeaveAmount"]), 2) recharge_amount = json.loads(data["data"])["amount"] expect_amount = amount_before + recharge_amount self.assertEqual(expect_amount, amount_after, msg="充值金额不一致") log.info(f"预期金额:{expect_amount}实际金额:{amount_after}") log.info("用例执行通过\n") self.oe.write_data(row=data["case_id"] + 1, actual=actual, result="PASS") except Exception as e: log.error(f"用例执行失败{e}\n") self.oe.write_data(row=data["case_id"] + 1, actual=actual, result="FAIL") raise e