from testcases.base_case import BaseCase from common.basic_data import DoRegex, Context from common.http_requests_api import HttpRequest from common import contants from common.do_excel import DoExcel from common.do_mysql_tool import MysqlTool import json from common.read_config import ReadConfig from ddt import ddt, data from common.mylogger1 import MyLog # 取现 do_excel = DoExcel(contants.data_dir) cases = do_excel.get_case('withdraw') my_logger = MyLog() @ddt class TestWithDraw(BaseCase): def setUp(self): self.mysql = MysqlTool() # 取现前用户可用余额 self.seek_leaveamount_sql = 'SELECT LeaveAmount FROM future.member where MobilePhone={0};'.format( Context.normal_phone) self.before_amount = self.mysql.fetch_one( self.seek_leaveamount_sql)['LeaveAmount'] # 取现前用户可用余额 @data(*cases) def test_withdraw(self, case):
# 获取用户所有投资记录 from testcases.base_case import BaseCase from common.basic_data import DoRegex,Context from common.http_requests_api import HttpRequest from common import contants from common.do_excel import DoExcel from common.do_mysql_tool import MysqlTool import json from common.read_config import ReadConfig from ddt import ddt,data from common.mylogger1 import MyLog do_excel = DoExcel(contants.data_dir) cases = do_excel.get_case('getInvestrecord') my_logger = MyLog() @ddt class GetInvestRecord(BaseCase): @classmethod def setUpClass(cls): global mysql mysql = MysqlTool() @data(*cases) def test_get_invest_record(self, case): my_logger.info('正在执行第{0}条用例{1}'.format(case.case_id, case.title))
# 完成投资人登录,把cookies放到上下文中,为后面其他接口做准备 import unittest from common.http_requests_api import HttpRequest from common import contants from common.do_excel import DoExcel import json from ddt import ddt,data from common.read_config import ReadConfig from common.basic_data import DoRegex,Context from common.mylogger1 import MyLog do_excel = DoExcel(contants.data_dir) cases = do_excel.get_case('normal') my_logger = MyLog() @ddt class BaseCase(unittest.TestCase): @data(*cases) def test_base(self,case): url = ReadConfig().get('test_api','url_pre') + case.url my_logger.info('请求地址:{0}'.format(url)) data = DoRegex.replace(case.data) data = json.loads(data) my_logger.info('请求参数:{0}'.format(data)) if hasattr(Context,'cookies'):
# @Author : yuxuan # #file : test_invest.py import unittest from common.http_requests_api import HttpRequest from common import contants from common.do_excel import DoExcel import json from common.do_mysql_tool import MysqlTool from common.read_config import ReadConfig from common.basic_data import DoRegex, Context from ddt import ddt, data from common.mylogger1 import MyLog do_excel = DoExcel(contants.data_dir) cases = do_excel.get_case('invest') my_logger = MyLog() Cookies = None @ddt class TestInvest(unittest.TestCase): def setUp(self): self.mysql = MysqlTool() # 投资前用户余额 self.seek_mount = ReadConfig().get('SQL', 'LeaveAmount') self.leaveamount1 = self.mysql.fetch_one( self.seek_mount)['LeaveAmount'] # 投资前余额 my_logger.info('投资前用户账户余额:{0}'.format(self.leaveamount1))
# #file : test_list.py # 获取用户列表 from testcases.base_case import BaseCase from common.basic_data import DoRegex, Context from common.http_requests_api import HttpRequest from common import contants from common.do_excel import DoExcel from common.do_mysql_tool import MysqlTool from common.read_config import ReadConfig from ddt import ddt, data from common.mylogger1 import MyLog do_excel = DoExcel(contants.data_dir) cases = do_excel.get_case('list') my_logger = MyLog() @ddt class TestList(BaseCase): @classmethod def setUpClass(cls): global mysql mysql = MysqlTool() @data(*cases) def test_list(self, case): my_logger.info('正在执行第{0}条用例{1}'.format(case.case_id, case.title)) url = ReadConfig().get('test_api', 'url_pre') + case.url my_logger.info('检查url接口地址:{0}'.format(url))
# #file : test_login.py import unittest from common.do_excel import DoExcel from common.http_requests_api import HttpRequest from common import contants import json from common.basic_data import DoRegex from common.read_config import ReadConfig from common.mylogger1 import MyLog from ddt import ddt,data #data 可以控制读取单个数据/多个数据,fiel_data读取文件数据 # 如其中一个用例失败,后面的用例不执行,可采用ddt数据驱动 #编写登录请求测试类 do_excel = DoExcel(contants.data_dir) cases = do_excel.get_case('login') #列表外包字符串 my_logger = MyLog() @ddt class TestLogin(unittest.TestCase): def setUp(self): print('测试开始,环境准备') @data(*cases) # *为去列表外字符串 def test_login(self,case): my_logger.info('正在执行第{0}条用例{1}'.format(case.case_id,case.title)) my_logger.info('------开始检查url接口地址--------------') url = ReadConfig().get('test_api','url_pre')+case.url my_logger.info('url地址:{0}'.format(url)) my_logger.info('------------开始检查请求参数-----------')
# #file : test_recharge.py import unittest from common.http_requests_api import HttpRequest from common import contants from common.do_excel import DoExcel import json from common.do_mysql_tool import MysqlTool from common.read_config import ReadConfig from common.basic_data import DoRegex, Context from ddt import ddt, data from common.mylogger1 import MyLog # 读取配置文件基础数据--->放在context--->regex正则匹配替换---->request---拿到cookie放context cookie # recharge接口---调用context数据--->充值完数据库校验 do_excel = DoExcel(contants.data_dir) cases = do_excel.get_case('recharge') mylogger = MyLog() @ddt class TestRecharge(unittest.TestCase): def setUp(self): #获取期望结果放在setUp,充值前先取出leavemount sql = ReadConfig().get('SQL', 'LeaveAmount') global leavemount1 global mysql mysql = MysqlTool() leavemount1 = mysql.fetch_one(sql)['LeaveAmount'] mylogger.info('充值前账户余额:{0}'.format(leavemount1)) return leavemount1 @data(*cases)
# @Author : yuxuan # #file : test_add.py import unittest from common.http_requests_api import HttpRequest from common import contants from common.do_excel import DoExcel import json from common.do_mysql_tool import MysqlTool from common.read_config import ReadConfig from common.basic_data import DoRegex, Context from ddt import ddt, data from common.mylogger1 import MyLog do_excel = DoExcel(contants.data_dir) cases = do_excel.get_case('addLoan') my_logger = MyLog() Cookies = None @ddt class TestAddLoan(unittest.TestCase): def setUp(self): self.mysql = MysqlTool() @data(*cases) def test_add(self, case): global Cookies my_logger.info('正在执行第{0}条用例{1}'.format(case.case_id, case.title)) url = ReadConfig().get('test_api', 'url_pre') + case.url
# 1,设计一个run_test 模块完成收集用例--执行用例--回写测试结果 # 2,封装配置文件读取类,根据环境设计配置文件,实现多套环境灵活切换,url修改成配置文件拼接 from common.do_excel import DoExcel from common.http_requests_api import HttpRequest from common.read_config import ReadConfig from common import contants import json do_excel = DoExcel(contants.data_dir) sheet_names = do_excel.get_sheet_names() print('sheet 名称列表:', sheet_names) case_list = ['register', 'login'] # 定义一个执行测试用例的列表 for sheet_name in sheet_names: if sheet_name in case_list: # 如果sheet_name不在case_list列表里,就不执行 cases = do_excel.get_case(sheet_name) print(sheet_name + '测试用例个数:', len(cases)) for case in cases: # print('case信息:',case.__dict__) # 使用__dict__方法,把每一个case元素放在字典里,打印case信息 data = eval(case.data) url = ReadConfig().get('test_api', 'url_pre') + case.url # url接口地址拼接 # print('url接口地址:', url) req = HttpRequest(method=case.method, url=url, data=data) resp_dict = req.get_json() # 获取请求响应,字典 # 通过json.dumps函数将字典转换成字符串 resp_text = json.dumps(req.get_json(), ensure_ascii=False, indent=4) print(resp_text) # 判断接口响应是否和excel里面的expected的值是否一致
# @Author : yuxuan # #file : test_loanlist.py # 获取标的列表 from testcases.base_case import BaseCase from common.basic_data import DoRegex, Context from common.http_requests_api import HttpRequest from common import contants from common.do_excel import DoExcel from common.do_mysql_tool import MysqlTool from common.read_config import ReadConfig from ddt import ddt, data from common.mylogger1 import MyLog do_excel = DoExcel(contants.data_dir) cases = do_excel.get_case('getLoanList') my_logger = MyLog() @ddt class TestGetLoanList(BaseCase): @classmethod def setUpClass(cls): global mysql mysql = MysqlTool() @data(*cases) def test_get_loan_list(self, case): my_logger.info('正在执行第{0}条用例{1}'.format(case.case_id, case.title)) url = ReadConfig().get('test_api', 'url_pre') + case.url
# #file : test_register.py import unittest from common.do_excel import DoExcel from common.http_requests_api import HttpRequest from common import contants import json from common.mylogger1 import MyLog from common.seek_replace import SeekReplace from common.do_mysql_tool import MysqlTool from common.read_config import ReadConfig from ddt import ddt, data #data 可以控制读取单个数据/多个数据,fiel_data读取文件数据 # 如其中一个用例失败,后面的用例不执行,可采用ddt数据驱动 #编写登录请求测试类 do_excel = DoExcel(contants.data_dir) cases = do_excel.get_case('register') #列表外包字符串 my_logger = MyLog() @ddt class TestRegister(unittest.TestCase): def setUp(self): self.sql = ReadConfig().get('SQL', 'mobile_sql') self.mysql_tool = MysqlTool() @data(*cases) def test_login(self, case): max_mobilephone = str( int(self.mysql_tool.fetch_one(self.sql)['MobilePhone']) +
from testcases.base_case import BaseCase from common.basic_data import DoRegex,Context from common.http_requests_api import HttpRequest from common import contants from common.do_excel import DoExcel from common.do_mysql_tool import MysqlTool import json from common.read_config import ReadConfig from ddt import ddt,data from common.mylogger1 import MyLog # 获取标的所有投资记录 do_excel = DoExcel(contants.data_dir) cases = do_excel.get_case('get_loan_invest_record') my_logger = MyLog() @ddt class TestGetLoanInvestRecord(BaseCase): @classmethod def setUpClass(cls): global mysql mysql = MysqlTool() @data(*cases) def test_get_Loan_invest_record(self, case): my_logger.info('正在执行第{0}条用例{1}'.format(case.case_id, case.title)) url = ReadConfig().get('test_api', 'url_pre') + case.url my_logger.info('检查url接口地址:{0}'.format(url))
import unittest from common.request import Request from common.do_excel import DoExcel from common import constants import json from ddt import ddt, data, unpack do_excel = DoExcel(constants.testfile_path) cases = do_excel.get_case("login") @ddt class TestLogin(unittest.TestCase): def setUp(self): print("测试准备") @data(*cases) def test_login(self, case): data = json.loads(case.data) resq = Request(method=case.method, url=case.url, data=data) print(resq.get_json()) if case.expected == "null": expected = json.loads(case.expected) else: expected = case.expected #断言 self.assertEqual(expected, resq.get_json()["message"]) print("操作成功") def tearDown(self): print("测试清除")
# @Author : yuxuan # #file : test_audit.py import unittest from common.http_requests_api import HttpRequest from common import contants from common.do_excel import DoExcel import json from common.do_mysql_tool import MysqlTool from common.read_config import ReadConfig from common.basic_data import DoRegex, Context from ddt import ddt, data from common.mylogger1 import MyLog do_excel = DoExcel(contants.data_dir) cases = do_excel.get_case('audit') my_logger = MyLog() Cookies = None @ddt class TestAudit(unittest.TestCase): def setUp(self): self.mysql = MysqlTool() @data(*cases) def test_audit(self, case): global Cookies my_logger.info('正在执行第{0}条用例{1}'.format(case.case_id, case.title)) url = ReadConfig().get('test_api', 'url_pre') + case.url my_logger.info('检查url接口地址:{0}'.format(url))