class LoginTest(unittest.TestCase): excel = do_excel.DoExcel(constants.case_file, 'login') cases = excel.get_cases() #列表里面放cases实例 @classmethod #类方法每个类只执行一次 def setUpClass(cls): #初始化 类方法 logger.info('准备测试前置') cls.http_request = HttpRequest2() @data(*cases) #传进来的数据时case的实例 列表里多组数据传进来 def test_login(self, case): logger.info('开始测试:{0}'.format(case.title)) resp = self.http_request.request(case.method, case.url, case.data) try: self.assertEqual(case.expected, resp.text) self.excel.write_result(case.case_id + 1, resp.text, 'PASS') except AssertionError as e: self.excel.write_result(case.case_id + 1, resp.text, 'FAILE') logger.error('报错了,{}'.format(e)) raise e logger.info('结束测试:{0}'.format(case.title)) @classmethod def tearDownClass(cls): cls.http_request.close() logger.info('测试后置处理')
class AddTest(unittest.TestCase): excel = do_excel.DoExcel(constants.case_file, 'invest') cases = excel.get_cases() #列表里面放case实例 @classmethod #类方法每个类只执行一次 def setUpClass(cls): #初始化 类方法 cls.http_request = HttpRequest2() #保持一个session cls.mysql = do_mysql.DoMysql() @data(*cases) #传进来的数据时case的实例 列表里多组数据传进来 def test_invests(self, case): print(case.title) #请求之前替换参数化的值 case.data = context.replace(case.data) resp = self.http_request.request(case.method, case.url, case.data) try: self.assertEqual(str(case.expected), resp.json()['code']) self.excel.write_result(case.case_id + 1, resp.text, 'PASS') #判断加标成功之后 查询数据库 取到loan_id if resp.json()['msg'] == '加标成功': sql = 'select id from future.loan where memberid = 1290 order by id desc limit 1' loan_id = self.mysql.fetch_one(sql)[0] #返回元组数据类型 print('加标之后的ID', loan_id) #保存到类属性里面 setattr(Context, 'loan_id', str(loan_id)) except AssertionError as e: self.excel.write_result(case.case_id + 1, resp.text, 'FAILE') raise e @classmethod def tearDownClass(cls): cls.http_request.close()
class AddTest(unittest.TestCase): excel = do_excel.DoExcel(constants.case_file,'add') cases = excel.get_cases() #列表里面放case实例 @classmethod #类方法每个类只执行一次 def setUpClass(cls): #初始化 类方法 cls.http_request = HttpRequest2() #保持一个session @data(*cases) #传进来的数据时case的实例 列表里多组数据传进来 def test_add(self,case): # case.data = eval(case.data) #变成字典 # print(type(case.data)) # if case.data.__contains__('mobilephone') and case.data['mobilephone'] == 'normal_user': # case.data['mobilephone'] = config.get('data', 'normal_user') # 拿到配置文件里面的值赋值给mobilephone # # if case.data.__contains__('pwd') and case.data['pwd'] == 'normal_pwd': # case.data['pwd'] = config.get('data', 'normal_pwd') # # if case.data.__contains__('memberId') and case.data['memberId'] == 'loan_member_id': # case.data['memberId'] = config.get('data', 'loan_member_id') #请求之前替换参数化的值 case.data= context.replace(case.data) print(case.title) resp = self.http_request.request(case.method,case.url,case.data) try: self.assertEqual(str(case.expected),resp.json()['code']) self.excel.write_result(case.case_id+1,resp.text,'PASS') except AssertionError as e: self.excel.write_result(case.case_id+1,resp.text,'FAILE') raise e
class RegisterTest(unittest.TestCase): excel = do_excel.DoExcel(constants.case_file, 'register') cases = excel.get_cases() #列表里面放cases实例 @classmethod #类方法每个类只执行一次 def setUpClass(cls): #初始化 类方法 cls.http_request = HttpRequest2() cls.mysql = do_mysql.DoMysql() @data(*cases) #传进来的数据时case的实例 列表里多组数据传进来 def test_register(self, case): if case.data.find('register_mobile') > -1: #判断参数化的标识 sql = 'select max(mobilephone) from future.member' max_phone = self.mysql.fetch_one(sql)[0] #查询最大手机号码 #最大手机号码+1 print('最大手机号码', max_phone) #replace方法是替换之后返回一个新的字符串,所以需要case.data重新接收 case.data = case.data.replace('register_mobile', str(max_phone)) print(case.title) resp = self.http_request.request(case.method, case.url, case.data) try: self.assertEqual(case.expected, resp.text) self.excel.write_result(case.case_id + 1, resp.text, 'PASS') except AssertionError as e: self.excel.write_result(case.case_id + 1, resp.text, 'FAILE') raise e
class RechargeTest(unittest.TestCase): excel = do_excel.DoExcel(constants.case_file, 'recharge') #读取充值表单 cases = excel.get_cases() #拿到case @classmethod def setUpClass(cls): cls.http_request = HttpRequest2() @data(*cases) def test_recharge(self, case): print(case.title) resp = self.http_request.request(case.method, case.url, case.data) actual_code = resp.json()['code'] try: self.assertEqual(str(case.expected), actual_code) self.excel.write_result(case.case_id + 1, resp.text, "PASS") #断言成功写入PASS except AssertionError as e: self.excel.write_result(case.case_id + 1, resp.text, "FAIL") #断言成功写入FAILE raise e
class LoginTest(unittest.TestCase): excel = do_excel.DoExcel(contants.case_file, 'login') cases = excel.get_cases() @classmethod def setUpClass(cls): cls.http_request = HTTPRequest2() @data(*cases) def test_login(self, case): resp = self.http_request.request(case.method, case.url, case.data) try: self.assertEqual(case.expected, resp.text) self.excel.write_result(case.case_id + 1, resp.text, 'PASS') except AssertionError as e: self.excel.write_result(case.case_id + 1, resp.text, 'FAIL') raise e @classmethod def tearDownClass(cls): cls.http_request.close()
class LoginTest(unittest.TestCase): excel = do_excel.DoExcel(contants.case_file, 'TestLogin') cases = excel.get_case() @classmethod def setUpClass(cls): cls.http_request = HTTPRequest2() @data(*cases) #data可以接收可迭代数据类型,列表,元组,字典 def test_login(self, case): print(case.title) resp = self.http_request.request(case.method, case.url, case.data) try: self.assertEqual(case.expected, resp.text) self.excel.write_result(case.case_id + 1, resp.text, "pass") except AssertionError as e: self.excel.write_result(case.case_id + 1, resp.text, "fail") raise e @classmethod def tearDownClass(cls): cls.http_request.close()
class RechargeTest(unittest.TestCase): excel = do_excel.DoExcel(contants.case_file, 'recharge') cases = excel.get_cases() @classmethod def setUpClass(cls): cls.http_request = HTTPRequest2() @data(*cases) def test_recharge(self, case): print(case.title) resp = self.http_request.request(case.method, case.url, case.data) actual_code = resp.json()['code'] try: self.assertEqual(str(case.expected), actual_code) self.excel.write_result(case.case_id + 1, resp.text, 'PASS') except AssertionError as e: self.excel.write_result(case.case_id + 1, resp.text, 'FAIL') raise e @classmethod def tearDownClass(cls): cls.http_request.close()
class RechargeTest(unittest.TestCase): excel = do_excel.DoExcel(contants.case_file, 'TestRecharge') cases = excel.get_case() @classmethod def setUpClass(cls): cls.http_request = HTTPRequest2() @data(*cases) #data可以接收可迭代数据类型,列表,元组,字典 def test_recharge(self, case): print(case.title) resp = self.http_request.request(case.method, case.url, case.data) actual_code = resp.json()['code'] #返回的是字典,然后找code,d[key] try: self.assertEqual(str(case.expected), actual_code) self.excel.write_result(case.case_id + 1, resp.text, "pass") except AssertionError as e: self.excel.write_result(case.case_id + 1, resp.text, "fail") raise e @classmethod def tearDownClass(cls): cls.http_request.close()