def test_add(self,one_case): # data = one_case['data'] #需要进行参数化 new_data = Context.admin_user_tel_pwd_replace(one_case['data']) #需要实现 new_url = do_config.get_value('api', 'prefix_url') + one_case['url'] #向服务器发起请求 res = self.do_request.to_request(method=one_case['method'], url=new_url, data=new_data) #期望值 expect_result = one_case['expected'] msg = "测试" + one_case['title'] success_msg = do_config.get_value('msg', 'success_result') fail_msg = do_config.get_value('msg', 'fail_result') case_id = one_case['case_id'] try: # self.assertEqual(str(expect_result), code, msg=msg) self.assertIn(str(expect_result), res.text, msg=msg) do_excel.write_result(case_id+1, res.text, success_msg) do_logger.debug('{},执行结果为:{}'.format(msg, success_msg)) except AssertionError as e: do_excel.write_result(case_id+1, res.text, fail_msg) do_logger.error('{}, 执行结果为:{}具体异常为:{}'.format(msg, fail_msg, e)) raise e
def test_recharge(self, one_case): # data = one_case['data'] #需要进行参数化 new_data = Context.recharge_parameterization(one_case['data']) #需要实现 new_url = do_config.get_value('api', 'prefix_url') + one_case['url'] check_sql = one_case['check_sql'] if check_sql: check_sql = Context.recharge_parameterization(check_sql) mysql_data = self.handle_mysql.to_run( check_sql) #decimal.Decimal类型 amount_before_recharge = float(mysql_data['LeaveAmount']) amount_before_recharge = round(amount_before_recharge, 2) dict_data = json.loads(new_data, encoding='utf-8') recharge_number = dict_data['amount'] #向服务器发起请求 res = self.do_request.to_request(method=one_case['method'], url=new_url, data=new_data) #期望值 expect_result = one_case['expected'] msg = "测试" + one_case['title'] success_msg = do_config.get_value('msg', 'success_result') fail_msg = do_config.get_value('msg', 'fail_result') case_id = one_case['case_id'] code = res.json().get('code') try: self.assertEqual(str(expect_result), code, msg=msg) # self.assertIn(str(expect_result), res.text, msg=msg) if check_sql: mysql_data = self.handle_mysql.to_run( check_sql) # decimal.Decimal类型 amount_after_recharge = float(mysql_data['LeaveAmount']) amount_after_recharge = round(amount_after_recharge, 2) self.assertEqual( recharge_number, (amount_after_recharge - amount_before_recharge), msg=msg) do_excel.write_result(case_id + 1, res.text, success_msg) do_logger.debug('{},执行结果为:{}'.format(msg, success_msg)) except AssertionError as e: do_excel.write_result(case_id + 1, res.text, fail_msg) do_logger.error('{}, 执行结果为:{}具体异常为:{}'.format(msg, fail_msg, e)) raise e
def test_invest(self, one_case): # data = one_case['data'] #需要进行参数化 # print(data) # print(type(data)) new_data = Context.invest_parameterization(one_case['data']) #需要实现 print('-----------------') print(new_data) print('&&&&&&&&&&&&&&&&&&&') new_url = do_config.get_value('api', 'prefix_url') + one_case['url'] #向服务器发起请求 res = self.do_request.to_request(method=one_case['method'], url=new_url, data=new_data) if '加标成功' in res.text: check_sql = one_case['check_sql'] if check_sql: check_sql = Context.invest_parameterization(check_sql) print(check_sql) mysql_data = self.handle_mysql.to_run(check_sql) print(mysql_data, type(mysql_data)) #动态修改或者获取变量的一个过程 # Context.loan_id = mysql_data.get('Id') #类属性 setattr(Context, "loan_id", mysql_data['Id']) print('-----动态----', getattr(Context, "loan_id")) #期望值 expect_result = one_case['expected'] msg = "测试" + one_case['title'] success_msg = do_config.get_value('msg', 'success_result') fail_msg = do_config.get_value('msg', 'fail_result') case_id = one_case['case_id'] try: # self.assertEqual(str(expect_result), code, msg=msg) self.assertIn(str(expect_result), res.text, msg=msg) do_excel.write_result(case_id + 1, res.text, success_msg) do_logger.debug('{},执行结果为:{}'.format(msg, success_msg)) except AssertionError as e: do_excel.write_result(case_id + 1, res.text, fail_msg) do_logger.error('{}, 执行结果为:{}具体异常为:{}'.format(msg, fail_msg, e)) raise e
def test_register(self,one_case): case_id = one_case['case_id'] title = one_case['title'] data = one_case['data'] # 需要参数化, 将手机号替换 new_data = HandleContext.register_paramaterization_not_exist(data) #参数已经被正常实际好替换 do_logger.debug('获取到的data数据为:{},在第【{}】'.format(new_data,case_id+1)) url = one_case['url'] total_url = do_config.get_value('requests','url_head') + url method = one_case['method'] expected = one_case['expected'] header = do_config.get_eval_data('requests','login_headers') register_res =do_http_requests.to_request(method=method, url=total_url, data=new_data, headers=header) #real_result = login_res.json()['msg'] real_result = register_res.text #返回是字符串格式json #real_result = str(register_res.json()) # expected_result = expected msg = '测试' + title success_msg = do_config.get_value('msg', 'success_result') fail_msg = do_config.get_value('msg', 'fail_result') try: self.assertEqual(expected_result,real_result,msg=msg) do_hanle_excel.write_case(case_id+1,real_result,success_msg) do_logger.debug('{},用例执行成功,执行结果为:{}'.format(msg,success_msg)) except AssertionError as e: do_hanle_excel.write_case(case_id+1,real_result,fail_msg) do_logger.debug('{},用例用例执行失败,结果为:{},失败原因:{}'.format(msg,fail_msg,e)) raise e
def test_login(self, one_case): new_data = Context.register_parameterization(one_case['data']) new_url = do_config.get_value('api', 'prefix_url') + one_case['url'] #向服务器发起请求 res = TestLogin.do_request.to_request(method=one_case['method'], url=new_url, data=new_data) #期望值 expected_result = one_case['expected'] msg = "测试" + one_case['title'] success_msg = do_config.get_value('msg', 'success_result') fail_msg = do_config.get_value('msg', 'fail_result') case_id = one_case['case_id'] try: self.assertEqual(expected_result, res.text, msg=msg) do_excel.write_result(case_id + 1, res.text, success_msg) do_logger.debug('{},执行结果为:{}'.format(msg, success_msg)) except AssertionError as e: do_excel.write_result(case_id + 1, res.text, fail_msg) do_logger.error('{}, 执行结果:{}具体异常为:{}'.format(msg, fail_msg, e)) raise e
def test_invest(self,one_case): case_id = one_case['case_id'] title = one_case['title'] data = one_case['data'] # 需要参数化, 将手机号替换 #换位recharge的参数化 new_data = HandleContext.invest_paramaterization(data) #参数已经被正常实际好替换 do_logger.debug('获取到的new_data数据为:{},在第【{}】'.format(new_data,case_id+1)) url = one_case['url'] total_url = do_config.get_value('requests','url_head') + url method = one_case['method'] expected = one_case['expected'] check_sql = one_case['check_sql'] header = do_config.get_eval_data('requests','login_headers') invest_res =do_http_requests.to_request(method=method, url=total_url, data=new_data, headers=header) invest_res_content = invest_res.text if '加标成功' in invest_res_content: # 确定一定是加标成功 if check_sql: check_sql = HandleContext.invest_paramaterization(check_sql) mysql_data = self.handle_mysql.run_mysql(check_sql) loan_id = mysql_data['Id'] do_logger.debug('load_id的值为【{}】,在第 {} 行,返回值类型 {}'.format(loan_id,case_id+1,type(loan_id))) # 使用全局变量来解决接口依赖,极有可能出现循环导入,会抛出异常 #接口依赖是动态获取变量的过程 #HandleContext.loan_id = loan_id setattr(HandleContext,"loan_id",loan_id) # 给一个对象动态的创建属性 real_result = invest_res.json().get('code') #返回是字符串格式json expected_result = expected msg = '测试' + title success_msg = do_config.get_value('msg', 'success_result') fail_msg = do_config.get_value('msg', 'fail_result') try: self.assertEqual(str(expected_result),real_result,msg=msg) do_hanle_excel.write_case(case_id+1,real_result,success_msg) do_logger.debug('{},用例执行成功,执行结果为:{}'.format(msg,success_msg)) except AssertionError as e: do_hanle_excel.write_case(case_id+1,real_result,fail_msg) do_logger.debug('{},用例用例执行失败,结果为:{},失败原因:{}'.format(msg,fail_msg,e)) raise e
def test_register(self, one_case): case_id = one_case['case_id'] title = one_case['title'] data = one_case['data'] # 需要参数化, 将手机号替换 new_data = HandleContext.add_paramaterization(data) # 参数已经被正常实际好替换 do_logger.debug('new_data为:{},类型【{}】在第【{}】'.format( new_data, type(new_data), case_id + 1)) # if case_id > 1: # new_data_update = json.loads(new_data, encoding='utf-8') # # do_logger.debug( # 'new_data_update为:{},类型【{}】在第【{}】'.format(new_data_update, type(new_data_update), case_id + 1)) # memberId = new_data_update['memberId'] # do_logger.debug('memberID为:{},类型【{}】在第【{}】'.format(memberId, type(memberId), case_id + 1)) url = one_case['url'] total_url = do_config.get_value('requests', 'url_head') + url method = one_case['method'] expected = one_case['expected'] header = do_config.get_eval_data('requests', 'login_headers') register_res = do_http_requests.to_request(method=method, url=total_url, data=new_data, headers=header) # real_result = login_res.json()['msg'] real_result = register_res.json().get('code') # 返回是字符串格式json expected_result = expected msg = '测试' + title success_msg = do_config.get_value('msg', 'success_result') fail_msg = do_config.get_value('msg', 'fail_result') try: self.assertEqual(str(expected_result), real_result, msg=msg) do_hanle_excel.write_case(case_id + 1, real_result, success_msg) do_logger.debug('{},用例执行成功,执行结果为:{}'.format(msg, success_msg)) except AssertionError as e: do_hanle_excel.write_case(case_id + 1, real_result, fail_msg) do_logger.debug('{},用例用例执行失败,结果为:{},失败原因:{}'.format( msg, fail_msg, e)) raise e
def tearDownClass(cls): cls.handle_mysql.close() do_logger.debug('{}'.format('测试用例执行完毕,投资接口用例停止执行。。。。'))
def setUpClass(cls): cls.handle_mysql = HandleMysql() do_logger.debug('{}'.format('开始执行投资接口用例。。。。'))
def tearDownClass(cls): do_logger.debug('{}'.format('测试用例执行完毕,【加标接口用例】停止执行。。。。'))
def setUpClass(cls): do_logger.debug('{}'.format('开始执行【加标接口】用例。。。。'))
def test_recharge(self, one_case): case_id = one_case['case_id'] title = one_case['title'] data = one_case['data'] # 需要参数化, 将手机号替换 #换位recharge的参数化 new_data = HandleContext.recharge_paramaterization(data) #参数已经被正常实际好替换 do_logger.debug('获取到的data数据为:{},在第【{}】'.format(new_data, case_id + 1)) url = one_case['url'] total_url = do_config.get_value('requests', 'url_head') + url method = one_case['method'] expected = one_case['expected'] #充值之前查询金额 check_sql = one_case['check_sql'] if check_sql: check_sql = HandleContext.recharge_paramaterization(check_sql) mysql_data = self.handle_mysql.run_mysql(check_sql) amount_before_regarge = float( mysql_data['LeaveAmount']) # 返回decimal类型,需要用float转换 amount_before_regarge = round(amount_before_regarge, 2) header = do_config.get_eval_data('requests', 'login_headers') register_res = do_http_requests.to_request(method=method, url=total_url, data=new_data, headers=header) #real_result = login_res.json()['msg'] real_result = register_res.json().get('code') #返回是字符串格式json expected_result = expected msg = '测试' + title success_msg = do_config.get_value('msg', 'success_result') fail_msg = do_config.get_value('msg', 'fail_result') try: self.assertEqual(str(expected_result), real_result, msg=msg) if check_sql: #check_sql = HandleContext.recharge_paramaterization(check_sql) #充值后的金额 mysql_data = self.handle_mysql.run_mysql(check_sql) amount_after_regarge = float( mysql_data['LeaveAmount']) # 返回decimal类型,需要用float转换 amount_after_regarge = round(amount_after_regarge, 2) amount_expect_charge = json.loads(data, encoding='utf-8')['amount'] do_logger.debug('{}....类型{}, 在第【{}】行'.format( amount_expect_charge, type(amount_expect_charge), case_id + 1)) #将数据中计算出的充值前后的差值,再次转换为 取后2位小数 amount_sql_recharge = round( amount_after_regarge - amount_before_regarge, 2) self.assertEqual(amount_expect_charge, amount_sql_recharge, msg=msg) do_hanle_excel.write_case(case_id + 1, real_result, success_msg) do_logger.debug('{},用例执行成功,执行结果为:{}'.format(msg, success_msg)) except AssertionError as e: do_hanle_excel.write_case(case_id + 1, real_result, fail_msg) do_logger.debug('{},用例用例执行失败,结果为:{},失败原因:{}'.format( msg, fail_msg, e)) raise e