Пример #1
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)
Пример #2
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)
Пример #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 = 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)
Пример #4
0
@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='疯疯的测试报告',