def test_audit(self,data_object): if '#id#' in data_object.data: self.loan() #动态参数化请求参数 data_object.data = self.get_data.get_replace(data_object.data) log.info('-----------第{}条用例开始执行-------------'.format(data_object.case_id)) log.info('开始发送请求,请求地址:{}'.format(data_object.url)) new_status=None #请求参数包含*status*则替换为随机生成的status if '*status*' in data_object.data: #获取标的当前状态 status=self.conf.get_str('data','status') while True: new_status = random.randint(1, 6) if new_status != status:#新状态不等于当前状态则替换 data_object.data = data_object.data.replace('*status*',str(new_status)) break #获取完整请求地址 url = self.conf.get_str('url','url')+data_object.url #发送请求 get_register=HttpRequest(data_object.method,url,eval(data_object.data),get_data.cookies) #获取实际结果 res = get_register.json()['code'] #获取预期结果 expected = str(data_object.expected_code) # 检验数据库 res_status = None if data_object.check_sql: data_object.check_sql = self.get_data.get_replace(data_object.check_sql) res_status = self.db.find_one(data_object.check_sql) try: #断言实际结果和预期结果 self.assertEqual(expected,res) if res_status and new_status: self.assertEqual(res_status[0], new_status) 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.read_excel.white_excelMax(data_object.case_id + 1, '未通过') # 抛出异常 raise e else: #结果相同打印通过 print('\t该条用例通过\n\t实际结果与预期结果一致') # 调用写入方法,将通过写入Excel表 log.info('该条用例通过:{}'.format(data_object.title)) self.read_excel.white_excelMax(data_object.case_id + 1, '通过') finally: print('\t预期结果:{}\n\t实际结果:{}'.format(expected, res)) # 将实际结果写入Excel表 self.read_excel.white_excel(data_object.case_id + 1, str(res),8)
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)