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:
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:
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:
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:
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'])
def setup_class(self): self.request = HttpRequest() self.logger = Logs('audit') self.logger.getlogs('info', '------------开始执行登录接口测试用例------------')
def setup_class(self): self.request = HttpRequest() self.logger = Logs('loan') self.my_msql = Mysql() self.logger.getlogs('info', '------------开始执行测试用例------------')
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', '------------执行完登录接口测试用例------------')
def setup_class(self): self.request = HttpRequest() self.my_sql = Mysql() self.resutl = None self.log = Logs('Bidloan') # 实例化log对象 self.log.getlogs('info', '------------开始执行测试用例------------')
def setup_class(self): self.logger = Logs('recharge') self.logger.getlogs('info', Fore.YELLOW + '------------开始执行测试用例------------') self.rep = HttpRequest()
def setup_class(self): self.req_request = HttpRequest() # 实例化HttpRequest对象 self.logger = Logs('register') self.logger.getlogs('info', '------------开始执行测试用例------------')