参考链接
pytest hook函数:https://docs.pytest.org/en/latest/_modules/_pytest/hookspec.html
Pytest 参数化与数据驱动
- 装饰函数:装饰测试函数
- 装饰类:会传给类的所有方法
- 组合数据:自动生成多组测试用例(类似笛卡尔积)
- ids :增加可读性
- 结合yaml 实现数据驱动
pytest 常用插件
pip install pytest-rerunfailures 失败重跑
pip install pytest-assume 多重较验
pip install pytest-sugar 用例执行过程显示进度条
pip install pytest-ordering 解决用例顺序
pip install pytest-dependency 解决用例依赖
pip install pytest-xdist 分布式执行
pip intall pytest-html 测试报告
pytest 高级用法(编写hook方法)
- pytest_collection_modifyitems 收集上来的测试用例实现定制化功能
- pytest_addoption 为 pytest 命令行增加自定义参数,每个pytest plugin都会用到这个hook方法
- pytest_generate_tests 可以实现自定义动态参数化方案或者扩展
Pytest 配置
- pytest.ini 规则
- pytest的主配置文件,一般放在项目工程的根目录
- 指定pytest的运行方式
- 不能使用任何中文符号
[pytest]
markers 自定义mark 标签名
addopts 运行时参数(可添加多个命令行参数,空格分隔,所有参数与命令行一致)
python_files 自定义测试文件命名规则
python_classes = Test_* 自定义测试类命名规则
python_functions= test_* check_* 自定义测试方法命名规则
norecursedirs = result logs datas test_demo* 运行时忽略某些文件夹
Allure 生成测试报告
-
- 安装 allure2
-
- Allure help 帮助文档
-
- 生成 allure 测试结果 :pytest —alluredir=./report/
-
- 展示报告:allure serve ./report
-
- 生成最终版本的报告: allure generate ./report
-
- 打开报告 :allure open -h 127.0.0.1 -p 8883 ./report/