コード例 #1
0
ファイル: test_recharge.py プロジェクト: sikemm/test
class TestCases(unittest.TestCase):
    '''完成充值提现操作'''
    def setUp(self):
        '''用例执行之前执行'''
        MyLog().debug('开始进行用例测试')

    def tearDown(self):
        '''用例执行之后执行'''
        MyLog().debug('用例测试执行完毕')

    #获取表单名
    sheet = 'recharge'
    #从配置文件获取需要执行的用例
    case_id = ConfigCommon().getstr('RechargeCASE', 'case_id')
    MyLog().debug('sheet:{}'.format(sheet))
    '''读取测试用例'''
    test_data = do_excel.DoExcel(project_path.excel_path, sheet,
                                 case_id).read_data()

    @data(*test_data)
    def test_recharge(self, case):
        url = case['url']
        method = case['Method']
        # param = eval(case['Params'])  # 转换成字典格式
        # global COOKIES
        # resp = http_request.HttpRequest().http_request(method, url, param,GetData().COOKIES)
        param = eval(DoRe().do_re(case['Params']))

        resp = http_request.HttpRequest().http_request(method,
                                                       url,
                                                       param,
                                                       COOKIES=getattr(
                                                           GetData, 'COOKIES'))
        if resp.cookies:
            # COOKIES = resp.cookies
            setattr(GetData, 'COOKIES', resp.cookies)
        MyLog().debug('正在执行{}模块的第{}条测试用例'.format(case['Module'],
                                                 case['CaseId']))
        MyLog().debug('测试数据是:{}'.format(case))

        try:
            '''判断实际结果和期望结果是否一致'''
            MyLog().info('请求返回的数据是:{}'.format(resp.json()))
            self.assertEqual(resp.json(), eval(case['ExpectedResult']))
            testResult = 'pass'
            MyLog().info('测试通过{}={}'.format(resp.text, case['ExpectedResult']))
        except AssertionError as e:
            '''将错误结果写入日志'''
            MyLog().error('测试未通过{}'.format(e))
            MyLog().error('Exception InfoMation:{0}'.format(
                traceback.format_exc()))
            testResult = 'failed'
            raise e  #捕获异常之后,需要抛出异常,这样才能在报告里面显示失败,不然全都是通过的
        finally:
            MyLog().info('==========正在往excel里面写入数据=============')
            do_excel.DoExcel(project_path.excel_path, self.sheet,
                             self.case_id).write_data(case['CaseId'] + 1,
                                                      resp.text, testResult)
            MyLog().info('==========往excel里面写入数据完毕=============')
コード例 #2
0
ファイル: test_bidloan.py プロジェクト: sikemm/test
    def test_recharge(self,case):
        url = case['url']
        method = case['Method']
        # param = eval(case['Params'])  # 转换成字典格式
        #----调用方法,通过正则和反射完成参数替换
        param = eval(DoRe().do_re(case['Params']))
        #-----------通过反射完成参数值替换-------------
        # if case['Params'].find('mobilephone') > -1:
        #     nomal_mobilephone = ConfigCommon().getstr('DaTa', 'nomal_mobilephone')
        #     setattr(GetData, 'MOBILEPHONE', nomal_mobilephone)
        #     param = eval(case['Params'].replace('#nomal_mobilephone#',getattr(GetData,'MOBILEPHONE')))
        # elif case['Params'].find('memberId') > -1:
        #     nomal_memberid = ConfigCommon().getstr('DaTa', 'nomal_memberid')
        #     setattr(GetData, 'MEMBERID', nomal_memberid)
        #     param = eval(case['Params'].replace('#nomal_memberid#', getattr(GetData, 'MEMBERID')))
        #---------通过正则表达式完成参数替换--------------
        # if case['Params'].find('mobilephone')>-1:
        #     param = eval(DoRe().do_re(case['Params'],'nomal_mobilephone'))
        # elif case['Params'].find('memberId')>-1:
        #     param = eval(DoRe().do_re(case['Params'], 'nomal_memberid'))
        # global COOKIES
        # resp = http_request.HttpRequest().http_request(method, url, param,GetData().COOKIES)
        resp = http_request.HttpRequest().http_request(method, url, param,COOKIES=getattr(GetData,'COOKIES'))

        if resp.cookies:
            # COOKIES = resp.cookies   setattr:反射,定义了的话,就覆盖默认值,没有定义的话,就创建一个
            setattr(GetData,'COOKIES',resp.cookies)
        MyLog().debug('正在执行{}模块的第{}条测试用例'.format(case['Module'],case['CaseId']))
        MyLog().debug('发送的请求参数数据是:{}'.format(param))
        #投资成功后,进行数据库校验
        query ='select MAX(Id),Amount from invest where MemberID =1125548 '
        money = DoMysql().do_mysql(query,1)  #返回的是一个元祖

        try:
            '''判断实际结果和期望结果是否一致'''
            MyLog().info('请求返回的数据是:{}'.format(resp.json()))
            self.assertEqual(resp.json(),eval(case['ExpectedResult']))
            # 投资成功后,进行数据库校验
            baserusult=''
            if case['CaseId'] == 2:
                try:
                    self.assertEqual(int(money[1]),int(param['amount']))
                    baserusult = '数据库校验通过'
                except AssertionError as e:
                    baserusult = '数据库校验未通过'
                    raise e

            testResult = 'pass'+baserusult
            MyLog().info('测试通过{}={}'.format(resp.text,case['ExpectedResult']))
        except AssertionError as e:
            '''将错误结果写入日志'''
            MyLog().error('测试未通过{}'.format(e))
            testResult = 'failed'+baserusult
            raise e   #捕获异常之后,需要抛出异常,这样才能在报告里面显示失败,不然全都是通过的
        finally:
            MyLog().info('==========正在往excel里面写入数据=============')
            do_excel.DoExcel(project_path.excel_path,self.sheet,self.case_id).write_data(case['CaseId'] + 1, resp.text, testResult)
            MyLog().info('==========往excel里面写入数据完毕=============')
コード例 #3
0
ファイル: test_recharge.py プロジェクト: sikemm/test
    def test_recharge(self, case):
        url = case['url']
        method = case['Method']
        # param = eval(case['Params'])  # 转换成字典格式
        # global COOKIES
        # resp = http_request.HttpRequest().http_request(method, url, param,GetData().COOKIES)
        param = eval(DoRe().do_re(case['Params']))

        resp = http_request.HttpRequest().http_request(method,
                                                       url,
                                                       param,
                                                       COOKIES=getattr(
                                                           GetData, 'COOKIES'))
        if resp.cookies:
            # COOKIES = resp.cookies
            setattr(GetData, 'COOKIES', resp.cookies)
        MyLog().debug('正在执行{}模块的第{}条测试用例'.format(case['Module'],
                                                 case['CaseId']))
        MyLog().debug('测试数据是:{}'.format(case))

        try:
            '''判断实际结果和期望结果是否一致'''
            MyLog().info('请求返回的数据是:{}'.format(resp.json()))
            self.assertEqual(resp.json(), eval(case['ExpectedResult']))
            testResult = 'pass'
            MyLog().info('测试通过{}={}'.format(resp.text, case['ExpectedResult']))
        except AssertionError as e:
            '''将错误结果写入日志'''
            MyLog().error('测试未通过{}'.format(e))
            MyLog().error('Exception InfoMation:{0}'.format(
                traceback.format_exc()))
            testResult = 'failed'
            raise e  #捕获异常之后,需要抛出异常,这样才能在报告里面显示失败,不然全都是通过的
        finally:
            MyLog().info('==========正在往excel里面写入数据=============')
            do_excel.DoExcel(project_path.excel_path, self.sheet,
                             self.case_id).write_data(case['CaseId'] + 1,
                                                      resp.text, testResult)
            MyLog().info('==========往excel里面写入数据完毕=============')
コード例 #4
0
ファイル: test_recharge.py プロジェクト: sikemm/test
 def tearDown(self):
     '''用例执行之后执行'''
     MyLog().debug('用例测试执行完毕')
コード例 #5
0
ファイル: test_recharge.py プロジェクト: sikemm/test
 def setUp(self):
     '''用例执行之前执行'''
     MyLog().debug('开始进行用例测试')