class TestRegister(unittest.TestCase): "注册类用例" @classmethod def setUpClass(cls): logger.info('======== start ============》开始执行{}类下的用例'.format( cls.__name__)) cls.count = 0 @classmethod def tearDownClass(cls): logger.info('======== END ============》{}类下的用例已经全部执行完成'.format( cls.__name__)) def setUp(self): logger.info(">" * 50) self.__class__.count += 1 logger.info("开始第>》》》 {} 《《《<条执行用例".format(self.__class__.count)) self.t = ReadExcel(load_data_path, sheet_name) def tearDown(self): logger.info("第>》》》 {} 《《《<条执行用例执行完成".format(self.__class__.count)) logger.info("<" * 50) self.t.close_excel() @data(*datas) def test_register(self, case): '注册用咧' # 对excel中已经参数化的内容进行替换 if case["param"] is not None and isinstance(case["param"], str): if re.search(r'#(.*?)#', case['param']): case['param'] = re_replace(case['param'], case["obj"])
class TestInvest(unittest.TestCase): '投资类用例' @classmethod def setUpClass(cls): logger.info('======== start ============》开始执行{}类下的用例'.format( cls.__name__)) clear_Envdata_attr() cls.count = 0 @classmethod def tearDownClass(cls): logger.info('======== END ============》{}类下的用例已经全部执行完成'.format( cls.__name__)) def setUp(self): logger.info(">" * 50) self.__class__.count += 1 logger.info("开始第>》》》 {} 《《《<条执行用例".format(self.__class__.count)) self.t = ReadExcel(load_data_path, sheet_name) def tearDown(self): logger.info("第>》》》 {} 《《《<条执行用例执行完成".format(self.__class__.count)) logger.info("<" * 50) self.t.close_excel() @data(*datas) def test_invest(self, case): person_symbol = None test_result = None expect_result = None if case['check_sql'] is not None and isinstance( case['check_sql'], str): if re.search('#(.*?)#', case['check_sql']): case['check_sql'] = re_replace(case['check_sql']) # 获取用户身份 是管理员还是普通用户以及id person_symbol = db.select_one_data( eval(case['check_sql'])['sql_01'])['type'] max_count = db.select_one_data( eval(case['check_sql'])['sql_01'])['leave_amount'] max_count = round( float(Decimal(max_count).quantize(Decimal('0.00')))) setattr(EnvData, "max_count", max_count) # 获取投资成功前financelog中用户的记录行数 if len(eval(case['check_sql'])) > 1: # pre_line = db.get_count(eval(case['check_sql'])['sql_02'])
class TestLoan(unittest.TestCase): '加标类测试' @classmethod def setUpClass(cls): logger.info( "------------>开始执行{} 类下的测试用例集 <-----------------".format( cls.__name__)) cls.count = 0 clear_Envdata_attr() # 清理环境类中的类属性 @classmethod def tearDownClass(cls): logger.info( "------------>结束执行{} 类下的测试用例集 <-----------------".format( cls.__name__)) def setUp(self): self.__class__.count += 1 logger.info("---------->开始执行第{}条测试用例-----------------".format( self.__class__.count)) self.t = ReadExcel(load_data_path, sheet_name) def tearDown(self): self.t.close_excel() logger.info("---------->结束执行第{}条测试用例-----------------".format( self.__class__.count)) @data(*datas) def test_loan(self, case): test_result = None # 前置sql if case['check_sql'] is not None and isinstance( case['check_sql'], str): if re.search(r"(.*?)", case['check_sql']): case['check_sql'] = re_replace(case['check_sql']) logger.info('打印出sql-=============》{}'.format( eval(case['check_sql'])['sql_01'])) loan_id = db.select_one_data( eval(case['check_sql'])['sql_01'])['id'] logger.info("{}".format(loan_id)) expect_line = db.get_count(eval(case['check_sql'])['sql_02']) setattr(EnvData, "loan_id", loan_id)
class TestRecharge(unittest.TestCase): "充值类用例" @classmethod def setUpClass(cls): logger.info('======== start ============》开始执行{}类下的用例'.format(cls.__name__)) clear_Envdata_attr() # 清除上个脚本设置的动态属性 cls.count = 0 user,pwd = get_old_phone() res = MyRequest('POST','/futureloan/member/login',{"mobile_phone":user,"pwd":pwd}).send_requests() cls.user_id = jsonpath.jsonpath(res.json(),'$..id')[0] setattr(EnvData,'user_id',cls.user_id) cls.token = jsonpath.jsonpath(res.json(),'$..token')[0] @classmethod def tearDownClass(cls): logger.info('======== END ============》{}类下的用例已经全部执行完成'.format(cls.__name__)) def setUp(self): logger.info(">" * 50) self.__class__.count += 1 logger.info("开始第>》》》 {} 《《《<条执行用例".format(self.__class__.count)) self.t = ReadExcel (load_data_path, sheet_name) def tearDown(self): logger.info ("第>》》》 {} 《《《<条执行用例执行完成".format(self.__class__.count)) logger.info ("<" * 50) self.t.close_excel() @data(*datas) def test_recharge(self,case): '充值用咧' # 对excel中已经参数化的内容进行替换 if case["param"] is not None and isinstance (case["param"], str): if re.search (r'#(.*?)#', case['param']): case['param'] = re_replace (case['param'], case["obj"])
def setUp(self): logger.info(">" * 50) self.__class__.count += 1 logger.info("开始第>》》》 {} 《《《<条执行用例".format(self.__class__.count)) self.t = ReadExcel(load_data_path, sheet_name)
import unittest from ddt import ddt, data from d2020_07_01.common.myconfig import cnf from d2020_07_01.common.mylog import logger from d2020_07_01.common.EnvData import * from d2020_07_01.common.read_excel import ReadExcel from d2020_07_01.common.load_path import load_data_path from d2020_07_01.common.handle_phone import * from d2020_07_01.common.handle_request import MyRequest import json from d2020_07_01.common.handle_db import HandleDb from decimal import * sheet_name = cnf.read_section_to_dict("EXCEL")['invest'] datas = ReadExcel(load_data_path, sheet_name).load_data() db = HandleDb() @ddt class TestInvest(unittest.TestCase): '投资类用例' @classmethod def setUpClass(cls): logger.info('======== start ============》开始执行{}类下的用例'.format( cls.__name__)) clear_Envdata_attr() cls.count = 0 @classmethod
class TestWithDraw(unittest.TestCase): '提现类测试用例' @classmethod def setUpClass(cls): logger.info('======== start ============》开始执行{}类下的用例'.format( cls.__name__)) clear_Envdata_attr() cls.count = 0 user, pwd = get_old_phone() res = MyRequest('POST', '/futureloan/member/login', { "mobile_phone": user, 'pwd': pwd }).send_requests() cls.user_id = jsonpath.jsonpath(res.json(), '$..id')[0] cls.token = jsonpath.jsonpath(res.json(), '$..token')[0] setattr(EnvData, 'user_id', cls.user_id) # 初始化余额 db.update_data( 'UPDATE member SET leave_amount=9898.96 WHERE id={}'.format( cls.user_id)) @classmethod def tearDownClass(cls): logger.info('======== END ============》{}类下的用例已经全部执行完成'.format( cls.__name__)) db.db_close() def setUp(self): logger.info(">" * 50) self.__class__.count += 1 logger.info("开始第>》》》 {} 《《《<条执行用例".format(self.__class__.count)) self.t = ReadExcel(load_data_path, sheet_name) def tearDown(self): logger.info("第>》》》 {} 《《《<条执行用例执行完成".format(self.__class__.count)) logger.info("<" * 50) self.t.close_excel() @data(*datas) def test_withdraw(self, case): '提现用例' if case['check_sql'] is not None and isinstance( case['check_sql'], str): if re.search("#(.*?)#", case['check_sql']): case['check_sql'] = re_replace(case['check_sql'], case['obj']) logger.info('第{}条用例执行的sql语句是{}'.format(self.__class__.count, case['check_sql'])) # 提现前的帐户余额 pre_withdraw_amount = db.select_one_data( eval(case['check_sql'])['sql_01']) pre_withdraw_amount = str( Decimal(pre_withdraw_amount['leave_amount']).quantize( Decimal('0.00'))) # 提现金额 withdraw_amount = eval(case['param'])['amount'] logger.info(withdraw_amount) if case['id'] == 5: withdraw_amount = round( float(pre_withdraw_amount) + 1000.23, 2) setattr(EnvData, 'max_amount', withdraw_amount) # 期望金额 expect_amount = round( (float(pre_withdraw_amount) * 100 - withdraw_amount * 100) / 100, 2) setattr(EnvData, 'expect_amount', expect_amount)
def setUp(self): self.__class__.count += 1 logger.info("---------->开始执行第{}条测试用例-----------------".format( self.__class__.count)) self.t = ReadExcel(load_data_path, sheet_name)