def send_code_phone_replace(cls, data): """ 项目ID的参数替换,如果从参数中匹配到模式字符串,则替换,否则不替换 :param data:原始字符串,data中的data值 :return: """ if re.search(pattern=cls.send_code_phone_pattern, string=data): do_mysql = OperationMysql() send_code_phone = OperationContext.send_code_phone data = re.sub(pattern=cls.send_code_phone_pattern, repl=send_code_phone, string=data) do_mysql.close_db() return data
def unregister_phone_replace(cls, data): """ 未注册手机号的参数替换,如果从参数中匹配到模式字符串,则替换,否则不替换 :param data:原始字符串,data中的data值 :return:已替换手机号的原始字符串 """ if re.search(pattern=cls.unregister_phone_pattern, string=data): do_mysql = OperationMysql() unregistered_phone = do_mysql.create_unregistered_phone() data = re.sub(pattern=cls.unregister_phone_pattern, repl=unregistered_phone, string=data) do_mysql.close_db() return data
def loan_id_replace(cls, data): """ 项目ID的参数替换,如果从参数中匹配到模式字符串,则替换,否则不替换 :param data:原始字符串,data中的data值 :return: """ if re.search(pattern=cls.loan_id_pattern, string=data): do_mysql = OperationMysql() loan_id = OperationContext.loan_id data = re.sub(pattern=cls.loan_id_pattern, repl=loan_id, string=data) do_mysql.close_db() return data
def admin_phone_replace(cls, data): """ 管理员账号的参数替换,如果从参数中匹配到模式字符串,则替换,否则不替换 :param data:原始字符串,data中的data值 :return: """ if re.search(pattern=cls.admin_phone_pattern, string=data): do_mysql = OperationMysql() admin_phone = cls.init_data_config.get_value(section="admin", option="mobilephone") data = re.sub(pattern=cls.admin_phone_pattern, repl=admin_phone, string=data) do_mysql.close_db() return data
def lender_pwd_replace(cls, data): """ 出借人密码的参数替换,如果从参数中匹配到模式字符串,则替换,否则不替换 :param data:原始字符串,data中的data值 :return: """ if re.search(pattern=cls.lender_pwd_pattern, string=data): do_mysql = OperationMysql() lender_pwd = cls.init_data_config.get_value(section="lender", option="pwd") data = re.sub(pattern=cls.lender_pwd_pattern, repl=lender_pwd, string=data) do_mysql.close_db() return data
def register_phone_replace(cls, data): """ 已注册手机号的参数替换,如果从参数中匹配到模式字符串,则替换,否则不替换 :param data:原始字符串,data中的data值 :return: """ if re.search(pattern=cls.invest_phone_pattern, string=data): do_mysql = OperationMysql() registered_phone = cls.init_data_config.get_value( section="lender", option="mobilephone") data = re.sub(pattern=cls.invest_phone_pattern, repl=registered_phone, string=data) do_mysql.close_db() return data
def borrower_memberid_replace(cls, data): """ 借款人id的参数替换,如果从参数中匹配到模式字符串,则替换,否则不替换 :param data:原始字符串,data中的data值 :return: """ if re.search(pattern=cls.borrower_memberid_pattern, string=data): do_mysql = OperationMysql() borrower_memberid = cls.init_data_config.get_value( section="borrower", option="id") data = re.sub(pattern=cls.borrower_memberid_pattern, repl=borrower_memberid, string=data) do_mysql.close_db() return data
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()
class TestRecharge(unittest.TestCase): oe = operation_excel.OperationExcel(EXCEL_DIR, sheet_name="recharge") test_data = oe.get_data() do_context = OperationContext() do_sql = OperationMysql() @classmethod def setUpClass(cls) -> None: log.info("{:-^50}".format("充值模块测试用例开始执行")) @classmethod def tearDownClass(cls) -> None: log.info("{:-^50}".format("充值模块测试用例结束执行")) @data(*test_data) 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
class TestRegister(unittest.TestCase): oe = operation_excel.OperationExcel(EXCEL_DIR, sheet_name="userRegister") test_data = oe.get_data() do_context = OperationContext() do_sql = OperationMysql() @classmethod def setUpClass(cls) -> None: log.info("{:-^50}".format("注册模块测试用例开始执行")) @classmethod def tearDownClass(cls) -> None: log.info("{:-^50}".format("注册模块测试用例结束执行")) @data(*test_data) def test_register(self, data): url = do_conifg.get_value(section="API", option="url1") + data["url"] expect = data["expected"] data = json.dumps(data) form_data = self.do_context.register_parameterization(data) data = json.loads(form_data) check_sql = data["check_sql"] form_data = json.loads(form_data) actual = do_request.send_request(url=url, method=data["method"], data=json.loads(form_data["data"])) actual = dict(actual) actual = str(actual["retInfo"]) if check_sql: # OperationContext.mobile = str(form_data["mobile"]) # check_sql = self.do_context.register_parameterization(check_sql) mysql_data = self.do_sql.get_value(sql=check_sql) OperationContext.verify_code = str(mysql_data["fverify_code"]) OperationContext.send_code_phone = json.loads( form_data["data"])["mobile"] print(json.loads(form_data["data"])["mobile"]) log.info(f"请求地址:{url}\n请求参数:{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
class TestInvest(unittest.TestCase): oe = operation_excel.OperationExcel(EXCEL_DIR, sheet_name="invest") test_data = oe.get_data() do_context = OperationContext() do_sql = OperationMysql() @classmethod def setUpClass(cls) -> None: log.info("{:-^50}".format("投资接口测试用例开始执行")) @classmethod def tearDownClass(cls) -> None: log.info("{:-^50}".format("投资接口测试用例结束执行")) @data(*test_data) 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