三层框架+数据驱动+设置+日志+报告+邮件
三层框架:(对象层)objects+模块层(modules)+ 脚本层(scripts)
objects层:以登录为例 封装登录的所有方法 打开浏览器 切换frame 输入用户名 输入密码 点击登录
modules层:创建登录类,导入objects的类,调用objects的所有方法,传入相关参数
scripts层:文件以test开头,
类的参数为unitest.TestCase,可以使用夹具 setUp tearDown控制用例的开始结束。
在这一层可以做数据驱动 创建xlsx文件,数据驱动三步:
1.在Testdata 中创建xlsx文件,文件中输入测试数据
2.在Testdata 中创建read_excel,读取测试数据
3.在脚本中读取封装测试数据的方法 在类前加入@ddt.ddt,传入scripts层
最后,执行测试脚本@ddt.data(*XXX) 加*号进行拆包:
可以使用suit套件执行脚本,套件中可以使用HTMLTestRunner:
官网复制HTMLTestRunner的代码,修改后,一定要放到项目下,不要放到lib下
可以在Bin目录下 执行测试套件 :
# 结合测试报告 suit = unittest.TestSuite() now = time.strftime('%Y-%m-%d_%H_%M_%S') loader = unittest.TestLoader() suit.addTest(loader.discover(testCasePath)) with open(testReportPath + '/' + now + '_report.html', 'wb') as fp: runner = TestRunner.HTMLTestRunner( stream=fp, title='测试报告', description='仅供测试' ) runner.run(suit)
setting层:1.读取元素的 ini 配置文件
2.config的配置 所有路径
Log层:放在util 工具层,封装 单态 log的类 导入logure