示例#1
0
    def test_cases(self, case):
        global TestResult  #全局变量
        # global COOKIES#声明是一个全局变量
        # 1:读取到测试数据
        # 2:执行测试:遍历--根据Key取值
        method = case['Method']
        url = case['Url']
        param = eval(case['Params'])

        # 发起测试
        my_log.info('------正在测试{}模里面第{}条测试用例:{}'.format(
            case['Module'], case['CaseId'], case['Title']))
        my_log.info('测试数据是:{}'.format(case))
        # 投资前查询数据库获取余额,保存
        if case['sql'] != None:
            sql = eval(case['sql'])['sql']
            before_amount = DoMysql().do_mysql(sql)[0]

        resp = HttpRequest().http_request(method,
                                          url,
                                          param,
                                          cookies=getattr(GetData, 'COOKIE'))
        #实实在在的http请求发生之后才去加一个判断,判断是否产生了cookies
        if resp.cookies:  #判断请求的cookies是否为空 不为空其实就是为True
            setattr(GetData, 'COOKIE', resp.cookies)  #我们可以更新COOKIES这个全局变量的值

        # 投资后的查询数据库的余额
        if case['sql'] != None:
            sql = eval(case['sql'])['sql']
            after_amount = DoMysql().do_mysql(sql)[0]

        try:
            self.assertEqual(eval(case['ExpectedResult']),
                             resp.json())  #http发送请求拿到的实际返回结果
            #再加一个断言  与的关系
            #     # 投资后的查询数据库的余额
            if case['sql'] != None:
                sql = eval(case['sql'])['sql']
                after_amount = DoMysql().do_mysql(sql)[0]

                invest_amount = param['amount']  #实际的投资金额
                expect_amount = before_amount - invest_amount
                self.assertEqual(expect_amount, after_amount)

            TestResult = 'Pass'  #请注意这里
        except Exception as e:
            TestResult = 'Failed'
            my_log.error('http请求出错了,错误是:{}'.format(str(e)))
            raise e  #处理完异常之后  不要留在家里 要抛出去
        finally:
            #写回结果
            self.t.write_back(case['CaseId'] + 1, 9, resp.text)  #请注意这里
            self.t.write_back(case['CaseId'] + 1, 10, TestResult)

        my_log.info('实际结果为:{}'.format(resp.json()))  #http发送请求拿到的实际返回值
示例#2
0
    def test_cases(self, case):
        global TestResult  # 全局变量
        # global COOKIES#声明是一个全局变量
        method = case['Method']
        url = case['Url']
        param = eval(case['Params'])

        # 发起测试
        my_log.info('-------正在测试{}模块里面第{}条测试用例:{}'.format(
            case['Module'], case['CaseId'], case['Title']))
        my_log.info('测试数据是:{}'.format(case))
        # 充值前查询数据库获取余额,保存
        if case['sql'] is not None:
            sql = eval(case['sql'])['sql']
            before_amount = DoMysql().do_mysql(sql)[0]

        resp = HttpRequest().http_request(method,
                                          url,
                                          param,
                                          cookies=getattr(GetData,
                                                          'COOKIE'))  # 传参
        # 实实在在的http请求发生之后才去加一个判断,判断是否产生了cookies
        if resp.cookies:  # 判断请求的cookies是否为空 不为空其实就是True
            setattr(GetData, 'COOKIE', resp.cookies)  # 我们可以更新COOKIES这个全局变量的值
        try:
            if case['sql'] is not None:
                sql = eval(case['sql'])['sql']
                after_amount = DoMysql().do_mysql(sql)[0]
                recharge_amount = int(param['amount'])  # 将充值金额转成int
                expect_amount = before_amount + recharge_amount
                self.assertEqual(expect_amount, after_amount)

            if case['ExpectedResult'].find(
                    'expect_amount') > -1:  # 判断是否需要做期望值的特换
                case['ExpectedResult'] = case['ExpectedResult'].replace(
                    'expect_amount', str(expect_amount))

            self.assertEqual(eval(case['ExpectedResult']), resp.json())
            TestResult = 'Pass'  # 请注意这里
        except AssertionError as e:
            TestResult = 'Failed'
            my_log.error('http请求测试用例出错了,错误是:{}'.format(e))
            raise e  # 处理完异常之后  不要留在家里 要抛出去! raise e
        finally:
            self.t.write_back(case['CaseId'] + 1, 9, resp.text)  # 请注意这里
            self.t.write_back(case['CaseId'] + 1, 10, TestResult)

        my_log.info('实际结果:{}'.format(resp.json()))  # http发送请求拿到的实际返回值
示例#3
0
    def test_cases(self, case):
        global TestResult  # 全局变量
        # global COOKIES#声明是一个全局变量
        method = case['Method']
        url = case['Url']
        param = eval(case['Params'])

        # 发起测试
        my_log.info('-------正在测试{}模块里面第{}条测试用例:{}'.format(
            case['Module'], case['CaseId'], case['Title']))
        my_log.info('测试数据是:{}'.format(case))
        # 投资前获取数据库余额
        if case['sql'] is not None:
            before_amount = DoMysql().do_mysql(eval(case['sql'])['sql'])[0]

        resp = HttpRequest().http_request(method,
                                          url,
                                          param,
                                          cookies=getattr(GetData,
                                                          'COOKIE'))  # 传参
        # 实实在在的http请求发生之后才去加一个判断,判断是否产生了cookies
        if resp.cookies:  # 判断请求的cookies是否为空 不为空其实就是True
            setattr(GetData, 'COOKIE', resp.cookies)  # 我们可以更新COOKIES这个全局变量的值

        # 投资后查询数据库的余额
        try:
            self.assertEqual(eval(case['ExpectedResult']), resp.json())
            if case['sql'] is not None:
                after_amount = DoMysql().do_mysql(eval(case['sql'])['sql'])[0]
                # 再加一个断言 与的关系
                invest_amount = param['amount']
                expected_amount = before_amount - invest_amount
                self.assertEqual(expected_amount, after_amount)

            TestResult = 'Pass'  # 请注意这里
        except AssertionError as e:
            TestResult = 'Failed'
            my_log.error('http请求测试用例出错了,错误是:{}'.format(e))
            raise e  # 处理完异常之后  不要留在家里 要抛出去! raise e
        finally:
            self.t.write_back(case['CaseId'] + 1, 9, resp.text)  # 请注意这里
            self.t.write_back(case['CaseId'] + 1, 10, TestResult)

        my_log.info('实际结果:{}'.format(resp.json()))  # http发送请求拿到的实际返回值
示例#4
0
    def test_cases(self, case):
        global TestResult  #全局变量
        # global COOKIES#声明是一个全局变量
        method = case['Method']
        url = case['Url']

        #替换loan_id,mobilephone,pwd
        # if case['Params'].find('loanid')!=-1:
        #     param=eval(case['Params'].replace('loanid',str(getattr(GetData,'LOAN_ID'))))#因为拿到的数据是int类型 replace只能用在字符串之间的替换 所以用str强转一下
        # else:
        #     param=eval(case['Params'])#请求参数
        params = eval(get_data.replace(case['Params']))

        #发起测试
        my_log.info('-------正在测试{}模块里面第{}条测试用例:{}'.format(
            case['Module'], case['CaseId'], case['Title']))
        my_log.info('测试数据是:{}'.format(case))

        resp = HttpRequest().http_request(method,
                                          url,
                                          params,
                                          cookies=getattr(GetData,
                                                          'COOKIE'))  #传参

        #判断是否要查询数据库
        if case['sql'] != None:  #如果sql语句不为None 那就是要进行数据库的查询操作
            loan_id = DoMysql().do_mysql(
                eval(case['sql'])['sql'],
                1)  #返回的是元组,所以我们存储数据的时候 最好是根据索引拿到值之后 再去做进一步操作
            setattr(GetData, 'loanid', str(loan_id[0]))  #利用反射

        #实实在在的http请求发生之后才去加一个判断,判断是否产生了cookies
        if resp.cookies:  #判断请求的cookies是否为空 不为空其实就是True
            setattr(GetData, 'COOKIE', resp.cookies)  #我们可以更新COOKIES这个全局变量的值
        try:
            self.assertEqual(eval(case['ExpectedResult']), resp.json())
            TestResult = 'Pass'  #请注意这里
        except Exception as e:
            # except AssertionError as e:
            TestResult = 'Failed'
            my_log.error('http请求测试用例出错了,错误是:{}'.format(e))
            raise e  #处理完异常之后  不要留在家里 要抛出去! raise e
        finally:
            self.t.write_back(case['CaseId'] + 1, 9, resp.text)  #请注意这里
            self.t.write_back(case['CaseId'] + 1, 10, TestResult)

        my_log.info('实际结果:{}'.format(resp.json()))  #http发送请求拿到的实际返回值