def test_register(self, data_object): # 充值前用户余额 start_res = None # 充值后用户余额 after_res = None if data_object.check_sql: #若用例数据sql字段不为空则执行 start_res = self.db.find_one(data_object.check_sql) #获取用户余额 log.info('-----------第{}条用例开始执行-------------'.format( data_object.case_id)) log.info('开始发送请求,请求地址:{}'.format(data_object.url)) #发送请求 normal_data = self.get_data.get_replace(data_object.data) url = self.conf.get_str('url', 'url') + data_object.url get_register = HttpRequest(method=data_object.method, url=url, data=eval(normal_data), cookies=get_data.cookies) #获取实际结果响应内容 res = get_register.json() #获取预期结果 expected = str(data_object.expected_code) if data_object.check_sql: #若用例数据sql字段不为空则执行 after_res = self.db.find_one(data_object.check_sql) #获取用户余额 try: #断言实际结果与预期结果是否一致 self.assertEqual(expected, res['code']) if start_res and after_res: change_money = after_res[0] - start_res[0] self.assertEqual( eval(data_object.data)['amount'], float(change_money)) #断言实际余额与充值后数据库用户余额 except AssertionError as e: #结果不同打印未通过 print('\t该条用例未通过\n\t实际结果与预期结果不一致') log.info('该条用例未通过:{}'.format(data_object.title)) # log.error(repr(e)) #获取错误类型函数repr # 获取错误信息的方法traceback.format_exc(),str转换成字符串 log.error(str(traceback.format_exc())) # 调用写入方法,将未通过写入Excel表 self.readexcel.white_excelMax(data_object.case_id + 1, '未通过') #抛出异常 raise e else: #结果相同打印通过 print('\t该条用例通过\n\t实际结果与预期结果一致') # 调用写入方法,将通过写入Excel表 log.info('该条用例通过:{}'.format(data_object.title)) self.readexcel.white_excelMax(data_object.case_id + 1, '通过') finally: print('\t预期结果:{}\n\t实际结果:{}'.format(expected, res)) # 将实际结果写入Excel表 self.readexcel.white_excel(data_object.case_id + 1, str(res), 8)
def test_register(self, data_object): log.info('-----------第{}条用例开始执行-------------'.format( data_object.case_id)) log.info('开始发送请求,请求地址:{}'.format(data_object.url)) #发送请求 normal_data = self.get_data.get_replace(data_object.data) url = self.conf.get_str('url', 'url') + data_object.url get_register = HttpRequest(data_object.method, url, eval(normal_data), cookies=get_data.cookies) #获取实际结果,响应内容 res = get_register.json() #获取预期结果 expected = str(data_object.expected_code) #获取数据库列表 sql_res = None if data_object.check_sql: #若用例数据sql字段不为空则执行 data_object.check_sql = self.get_data.get_replace( data_object.check_sql) sql_res = self.db.find_count(data_object.check_sql) #获取受影响行数 try: #断言实际结果与预期结果是否一致 self.assertEqual(expected, res['code']) if sql_res: #若受影响行数不为空执行 self.assertEqual(len(res['data']), sql_res) #断言实际结果data数和数据库数据条数 except AssertionError as e: #结果不同打印未通过 print('\t该条用例未通过\n\t实际结果与预期结果不一致') #调用写入方法,将未通过写入Excel表 log.info('该条用例未通过:{}'.format(data_object.title)) # log.error(repr(e)) #获取错误类型函数repr # 获取错误信息的方法traceback.format_exc(),str转换成字符串 log.error(str(traceback.format_exc())) self.readexcel.white_excelMax(data_object.case_id + 1, '未通过') #抛出异常 raise e else: #结果相同打印通过 print('\t该条用例通过\n\t实际结果与预期结果一致') # 调用写入方法,将通过写入Excel表 log.info('该条用例通过:{}'.format(data_object.title)) self.readexcel.white_excelMax(data_object.case_id + 1, '通过') finally: print('\t预期结果:{}\n\t实际结果:{}'.format(expected, res)) # 将实际结果写入Excel表 self.readexcel.white_excel(data_object.case_id + 1, str(res), 8)
def test_register(self, data_object): log.info('-----------第{}条用例开始执行-------------'.format( data_object.case_id)) log.info('开始发送请求,请求地址:{}'.format(data_object.url)) #发送请求 normal_data = self.get_data.get_replace(data_object.data) url = self.conf.get_str('url', 'url') + data_object.url get_register = HttpRequest(data_object.method, url, eval(normal_data), cookies=get_data.cookies) #获取实际结果,响应内容 res = get_register.json() #获取预期结果 expected = eval(data_object.expected) try: #断言实际结果与预期结果是否一致 self.assertEqual(expected, res) except AssertionError as e: #结果不同打印未通过 print('\t该条用例未通过\n\t实际结果与预期结果不一致') #调用写入方法,将未通过写入Excel表 log.info('该条用例未通过:{}'.format(data_object.title)) # log.error(repr(e)) #获取错误类型函数repr # 获取错误信息的方法traceback.format_exc(),str转换成字符串 log.error(str(traceback.format_exc())) self.readexcel.white_excelMax(data_object.case_id + 1, '未通过') #抛出异常 raise e else: #结果相同打印通过 print('\t该条用例通过\n\t实际结果与预期结果一致') # 调用写入方法,将通过写入Excel表 log.info('该条用例通过:{}'.format(data_object.title)) self.readexcel.white_excelMax(data_object.case_id + 1, '通过') finally: print('\t预期结果:{}\n\t实际结果:{}'.format(expected, res)) # 将实际结果写入Excel表 self.readexcel.white_excel(data_object.case_id + 1, str(res), 8)
@author :疯疯 @time :2019/8/23 , 17:38 @E-mail :[email protected] @file :class21_day15_test_run.py @Software: PyCharm ======================== """ import sys sys.path.append('./') import unittest import os import time from HTMLTestRunnerNew import HTMLTestRunner from class21_api.common import constant from class21_api.common.logger import log log.info('---------用例开始执行------------') #创建测试套件 suite = unittest.TestSuite() #添加测试用例到套件中 loader = unittest.TestLoader() #添加一个路径下的所有用例 suite.addTest(loader.discover(constant.testcases_dir)) #打开html文件 #报告名加时间戳 timepath = time.strftime('%Y-%m-%d', time.localtime()) reportfile = '{}-report.html'.format(timepath) with open(os.path.join(constant.report_dir, reportfile), 'wb') as fb: #创建运行程序 runner = HTMLTestRunner(stream=fb, verbosity=2, title='疯疯的测试报告',