Esempio n. 1
0
class TestAudit:
    ex = Excel(paths.cases_file, 'audit')
    datas = ex.get_case()

    def setup_class(self):
        self.request = HttpRequest()
        self.logger = Logs('audit')
        self.logger.getlogs('info', '------------开始执行登录接口测试用例------------')

    @pytest.mark.parametrize('case', datas)
    def test_audit(self, case):
        self.logger.getlogs('info', '测试场景:{}'.format(case.title))
        case.data = replace(case.data, paths.gloads_file, 'testdata')
        self.logger.getlogs('debug', '请求参数:{}'.format(case.data))
        reps1 = self.request.request(case.method, case.url, eval(case.data))
        case.actual = json.loads(reps1.text)
        self.logger.getlogs('debug', '响应参数:{}'.format(case.actual))
        allure.attach('{}'.format(case.data), '请求参数')
        allure.attach('{}'.format(eval(case.expected)), '预期结果')
        allure.attach('{}'.format(case.actual), '实际结果')
        try:
            assert eval(case.expected)['status'] == case.actual['status']
            assert eval(case.expected)['code'] == case.actual['code']
            case.result = 'PASS'
        except AssertionError as e:
            case.result = 'FAIL'
            raise e
        finally:
Esempio n. 2
0
class TestRecharge:
    ex1 = Excel(paths.cases_file, 'recharge')
    datas = ex1.get_case()

    def setup_class(self):
        self.logger = Logs('recharge')
        self.logger.getlogs('info',
                            Fore.YELLOW + '------------开始执行测试用例------------')
        self.rep = HttpRequest()

    @allure.story('充值模块')
    @pytest.mark.parametrize('case', datas)
    def test_recharge(self, case):
        self.logger.getlogs('info', Fore.YELLOW + '测试场景:{}'.format(case.title))
        case.data = do_re.replace(case.data, paths.gloads_file, 'testdata')
        self.logger.getlogs('debug', '请求参数:{}'.format(case.data))
        try:
            reqs = self.rep.request(case.method, case.url, eval(case.data))
            case.actual = json.loads(reqs.text)
            # print(reqs.text)
            self.logger.getlogs('debug', '响应参数:{}'.format(case.actual))

            allure.attach('{}'.format(eval(case.expected)), '预期结果')
            allure.attach('{}'.format(case.actual), '实际结果')
            assert eval(case.expected)['status'] == case.actual['status']
            assert eval(case.expected)['code'] == case.actual['code']
            case.result = 'PASS'
        except AssertionError as asser:
            case.result = 'FAIL'
            raise asser
            self.logger.getlogs('error', Fore.RED + '断言失败原因:{}'.format(asser))
        finally:
Esempio n. 3
0
class TestRegister:
    ex = Excel(paths.cases_file, 'register')
    datas = ex.get_case()

    def setup_class(self):
        self.req_request = HttpRequest()  # 实例化HttpRequest对象
        self.logger = Logs('register')
        self.logger.getlogs('info', '------------开始执行测试用例------------')

    @allure.story('注册模块')
    @pytest.mark.parametrize('case', datas)
    def test_register(self, case):
        self.logger.getlogs('info', '测试场景:{}'.format(case.title))
        case.data = replace(case.data, paths.gloads_file, 'testdata')
        try:

            # print (case.data)
            self.logger.getlogs('debug', '请求参数:{}'.format(case.data))
            req_reqsond = self.req_request.request(case.method, case.url,
                                                   eval(case.data))  # 发送请求
            case.actual = json.loads(req_reqsond.text)
            self.logger.getlogs('debug', '响应结果:{}'.format(case.actual))
            # print(req_reqsond.status_code)
            allure.attach('{}'.format(eval(case.expected)), '预期结果')
            allure.attach('{}'.format(case.actual), '实际结果')
            assert eval(case.expected) == case.actual  # 断言实际结果和预期结果
            case.result = 'PASS'
        except AssertionError as asser:
            case.result = 'FAIL'
            raise asser
            self.logger.getlogs('error', '断言失败原因:{}'.format(asser))
        finally:
Esempio n. 4
0
class TestLogin:
    ex = Excel(paths.cases_file, 'login')
    datas = ex.get_case()

    def setup_class(self):
        self.logger = Logs('login')
        self.logger.getlogs('info', '------------开始执行登录接口测试用例------------')
        self.req_request = HttpRequest()

    @allure.story('登录模块')
    @pytest.mark.parametrize('case', datas)
    def test_logins(self, case):
        self.logger.getlogs('info', '测试场景:{}'.format(case.title))
        case.data = do_re.replace(case.data, paths.gloads_file, 'testdata')  # 调用正则表达式封装的替换函数

        try:
            self.logger.getlogs('debug', '请求参数:{}'.format(case.data))
            req_reqsond = self.req_request.request(case.method, case.url, eval(case.data))
            case.actual = json.loads(req_reqsond.text)
            self.logger.getlogs('debug', '响应参数:{}'.format(case.actual))
            allure.attach('{}'.format(case.data), '请求参数')
            allure.attach('{}'.format(eval(case.expected)), '预期结果')
            allure.attach('{}'.format(case.actual), '实际结果')
            assert eval(case.expected) == case.actual
            case.result = 'PASS'

            # print(case.actual)
        except AssertionError as asser:
            case.result = 'FAIL'
        finally:
Esempio n. 5
0
class TestBidloan:
    ex = Excel(paths.cases_file, 'bidLoan')
    datas = ex.get_case()

    def setup_class(self):
        self.request = HttpRequest()
        self.my_sql = Mysql()
        self.resutl = None
        self.log = Logs('Bidloan')  # 实例化log对象
        self.log.getlogs('info', '------------开始执行测试用例------------')

    @allure.story('投资模块')
    @pytest.mark.parametrize('case', datas)
    def test_bidloan(self, case):
        self.log.getlogs('info', '测试场景:{}'.format(case.title))  # 输出日志
        case.data = replace(case.data, paths.gloads_file, 'testdata')
        self.log.getlogs('info', '请求参数:{}'.format(case.data))
        reps1 = self.request.request(case.method, case.url,
                                     eval(case.data))  # 发起请求
        case.actual = json.loads(reps1.text)
        allure.attach('{}'.format(eval(case.expected)), '预期结果')
        allure.attach('{}'.format(case.actual), '实际结果')
        self.log.getlogs('info', '响应参数:{}'.format(case.actual))
        if int(case.case_id) == 1:
            sql = "select id from future.member where mobilephone='{}'".format(
                eval(case.data)['mobilephone'])
            # print(sql)
            self.resutl = self.my_sql.read_mysql(sql)
            # print(self.resutl)
            setattr(TestData, 'loaner_id', self.resutl['id'])
            self.log.getlogs('info',
                             '类属性loaner_id值:{}'.format(TestData.loaner_id))
        if int(case.case_id) == 2:
            sql = "select id from future.member where mobilephone='{}'".format(
                eval(case.data)['mobilephone'])
            # print(sql)
            self.resutl = self.my_sql.read_mysql(sql)
            # print(self.resutl)
            setattr(TestData, 'invest_id', self.resutl['id'])
Esempio n. 6
0
 def setup_class(self):
     self.request = HttpRequest()
     self.logger = Logs('audit')
     self.logger.getlogs('info', '------------开始执行登录接口测试用例------------')
Esempio n. 7
0
 def setup_class(self):
     self.request = HttpRequest()
     self.logger = Logs('loan')
     self.my_msql = Mysql()
     self.logger.getlogs('info', '------------开始执行测试用例------------')
Esempio n. 8
0
class TestLoan:
    ex = Excel(paths.cases_file, 'loan')
    datas = ex.get_case()

    def setup_class(self):
        self.request = HttpRequest()
        self.logger = Logs('loan')
        self.my_msql = Mysql()
        self.logger.getlogs('info', '------------开始执行测试用例------------')

    @allure.story('上标模块')
    @pytest.mark.parametrize('cases', datas)
    def test_loan(self, cases):
        self.logger.getlogs('info', '测试场景:{}'.format(cases.title))
        cases.data = replace(cases.data, paths.gloads_file, 'testdata')
        self.logger.getlogs('debug', '请求参数:{}'.format(cases.data))
        resp = self.request.request(cases.method, cases.url, eval(cases.data))
        cases.actual = json.loads(resp.text)
        if int(cases.case_id) == 1:
            sql = "select id from future.member where mobilephone='{}'".format(
                eval(cases.data)['mobilephone'])
            reustl = self.my_msql.read_mysql(sql)
            setattr(TestData, 'loaner_id', reustl['id'])
        self.logger.getlogs('debug', '响应参数:{}'.format(cases.actual))
        allure.attach('{}'.format(eval(cases.expected)), '预期结果')
        allure.attach('{}'.format(cases.actual), '实际结果')
        try:
            assert eval(cases.expected)['status'] == cases.actual['status']
            assert eval(cases.expected)['code'] == cases.actual['code']
            cases.result = 'PASS'
        except AssertionError as e:
            cases.result = 'FAIL'
            raise e
        finally:
            TestLoan.ex.set_write(cases.case_id, resp.text, cases.result)
            allure.attach('{}'.format(cases.result), '断言结果')
            self.logger.getlogs('info', '测试结果:{}'.format(cases.result))

    def teardown_class(self):
        TestLoan.ex.colse_excel()
        self.request.sessionclose()
        self.my_msql.close_mysql()
        self.logger.getlogs('info', '------------执行完登录接口测试用例------------')
Esempio n. 9
0
 def setup_class(self):
     self.request = HttpRequest()
     self.my_sql = Mysql()
     self.resutl = None
     self.log = Logs('Bidloan')  # 实例化log对象
     self.log.getlogs('info', '------------开始执行测试用例------------')
Esempio n. 10
0
 def setup_class(self):
     self.logger = Logs('recharge')
     self.logger.getlogs('info',
                         Fore.YELLOW + '------------开始执行测试用例------------')
     self.rep = HttpRequest()
Esempio n. 11
0
 def setup_class(self):
     self.req_request = HttpRequest()  # 实例化HttpRequest对象
     self.logger = Logs('register')
     self.logger.getlogs('info', '------------开始执行测试用例------------')