Exemplo n.º 1
0
 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)
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
 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)
Exemplo n.º 4
0
 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)