def test_add(self, add): print("测试的用例是:{}".format(add['description'])) login_data = Parameter.add_parameter(login_success[0]['param']) self.session_request.request(login_success[0]['method'], login_success[0]['url'], eval(login_data)) add_param = eval(Parameter.add_parameter(add['param'])) print("测试的数据是:{}".format(add_param)) res = self.session_request.request(add['method'], add['url'], data=add_param) test_result = None write_res = DoExcel(project_path.CASE_FILE_PATH, 'add') try: # self.assertEqual(str(res.json()['code']), str(add['except_code'])) self.assertIn(str(add['except_code']), res.text) my_logger.info(res.text) test_result = succeed except AssertionError as e: my_logger.error(e) test_result = failed raise e finally: print("测试结果是:", res.text) write_res.write_result(add['id'] + 1, res.json()['code'], test_result)
def test_register(self, register): print("测试的用例是:{}".format(register['description'])) param = Parameter.register_parameter(register['param']) print("测试的数据是:{}".format(param)) res = self.request.http_request(register['url'], register['method'], datas=param) test_result = None write_res = DoExcel(project_path.CASE_FILE_PATH, 'register') try: # self.assertEqual(str(res.json()['code']), str(register['except_code'])) self.assertIn(str(register['except_code']), res.text) my_logger.info(res.text) test_result = succeed except AssertionError as e: my_logger.error(e) test_result = failed raise e finally: print("测试结果是:", res.text) write_res.write_result(register['id'] + 1, res.json()['code'], test_result)
def test_recharge(self, recharge): # 在测试报告中显示测试用例名称 print("测试的用例是:{}".format(recharge['description'])) login_data = eval( Parameter.recharge_parameter(login_success[0]['param'])) self.session_request.request(login_success[0]['method'], login_success[0]['url'], login_data) param = eval(Parameter.recharge_parameter(recharge['param'])) print("测试的数据是:{}".format(param)) # 查询数据库余额数据进行数据校验 seek_sql = recharge['seek_sql'] if seek_sql: seek_sql = Parameter.recharge_parameter(seek_sql) before_seek_res = self.check_sql.run_sql(seek_sql, site=1) # seek_res = json.loads(seek_res) # 将返回数据进行数据转换,数据库查询出数据为decimal.Decimal类型,并保留两位小数 before_amount = round(float(before_seek_res['LeaveAmount']), 2) # 调用充值接口 res = self.session_request.request(recharge['method'], recharge['url'], data=param) test_result = None write_res = DoExcel(project_path.CASE_FILE_PATH, 'recharge') try: # self.assertEqual(str(res.json()['code']), str(recharge['except_code'])) self.assertIn(str(recharge['except_code']), res.text) if seek_sql: # 前一个sql已经完成参数化 # seek_sql = Parameter.recharge_parameter(seek_sql) after_seek_res = self.check_sql.run_sql(seek_sql, site=1) after_amount = round(float(after_seek_res['LeaveAmount']), 2) # 判断充值前后账户金额的变化是否正确 self.assertEqual(after_amount, before_amount + param['amount']) my_logger.info(res.text) test_result = succeed except AssertionError as e: my_logger.error(e) test_result = failed raise e finally: print("测试结果是:", res.text) write_res.write_result(recharge['id'] + 1, res.json()['code'], test_result)
def test_bidloan(self, bidloan): print("测试的用例是:{}".format(bidloan['description'])) # login_data = eval(Parameter.lodn_parameter(login_success[0]['param'])) # self.session_request.request(login_success[0]['method'], login_success[0]['url'], # login_data) loan_param = eval(Parameter.loan_parameter(bidloan['param'])) # self.session_request.request(bidloan['method'], bidloan['url'],bidloan) print("测试的数据是:{}".format(loan_param)) res = self.session_request.request(bidloan['method'], bidloan['url'], loan_param) # 获取成功加标的id if "加标成功" in res.text: check_sql = bidloan['seek_sql'] if check_sql: check_sql = Parameter.loan_parameter(check_sql) check_data = self.do_mysql.run_sql(check_sql, site=1) loan_id = check_data['Id'] # 取出加标ID print(loan_id) # 动态创建属性 setattr(Parameter, "loan_id", loan_id) test_result = None write_res = DoExcel(project_path.CASE_FILE_PATH, 'bidLoan') try: # self.assertEqual(str(res.json()['code']), str(bidloan['except_code'])) self.assertIn(str(bidloan['except_code']), res.text) my_logger.info(res.text) test_result = succeed except AssertionError as e: my_logger.error(e) test_result = failed raise e finally: print("测试结果是:", res.text) write_res.write_result(bidloan['id'] + 1, res.json()['code'], test_result)
def http_request(self, url, method, datas=None, is_json=False, **kwargs): """ 根据传入的参数完成请求 :param is_json: 传参的类型是否是json :param url:请求地址 :param datas:请求参数 :param method:请求方法 :param kwargs:其余参数,headers等 :return: """ # 将传入的请求方法字符串强制转换为大写,方便方法判断 method = method.upper() result = None # 根据不同形式的参数字典进行判断转换,excel中存储的可能是非json形式的字典 if isinstance(datas, str): try: datas = json.loads(datas) except Exception as e: datas = eval(datas) # my_logger.error("数据转换异常:", e) # 判断请求方法,按照设置的请求方法进行请求 if method == 'POST': # 判断存储参数的形势,是否是json,如果是,则以json的形式进行传参,否则以form表单的形式传参 if is_json: result = self.request_session.request(method=method, url=url, json=datas, **kwargs) my_logger.info("post请求成功") else: result = self.request_session.request(method=method, url=url, data=datas, **kwargs) my_logger.info("post请求成功") elif method == 'GET': result = self.request_session.request(method=method, url=url, params=datas, **kwargs) my_logger.info("get请求成功") else: my_logger.error("【{}】请求方法不允许".format(method)) return result