pytest 运行常用命令参数
参数 | 含义 |
---|---|
-q | 输出的结果缩短显示 |
-s | 显示在python程序中的print输出的内容,如是不加则不会显示 |
--durations | 获取最慢的n个用例的执行耗时 |
--durations-min | 此参数和–durations边用,表示在–durations-min时间段之内,获取最慢的测例耗时 |
-m | pytest调用模块 |
--pyargs | pytest调用包 |
-n NUM | 同时运行多个进程数,次数 用于填写并发数,在使用此选项前要安装pytest-xdist 包 |
--returns 次数 | 重试运行的次数 |
--html | 生成测试报告 |
--junitxml | 可以被jenkins工具解析 |
--doctest-glob | 执行doctest |
--doctest-moudles | 执行doctest |
--doctest-continue-on-failure | 当执行doctest失败时继续 |
--lf | 只运行失败的测例 |
--ff | 失败的测例优先运行,之后再运行其他测例 |
--cache-show | 检查缓存内容 |
--cache-clear | 清除缓存内容 |
--maxfail 次数 | 在出现第几个错误后停止 |
--pdb | 使用pdb调试 |
-v | 控制pytest输出的详细性,测试会话进度,测例失败后的断言细节 |
--show-capture=no | 禁用失败捕获的日志 |
--disable-warnings | 禁用warnings自动收集功能 |
--alluredir=DIR | 使用allure生成测试报告目录,此目录可以不存在 |
--clean-alluredir | 清理测试报告目录 |
-x 次数 | 出现第几次失败后结束测试 |
-
参数组合使用
# pytest.main([测试信息输出, 指定测试用例, 测试报告输出, 测试失败次数]) pytest.main(["-q", "test_login.py", '--html=./report.html', "-x"])
测试信息输出
# 设置pytest的执行参数 "-q":安静模式, 不输出环境信息
pytest.main(["-q"])
# 设置pytest的执行参数 "-s":显示程序中的print/logging输出
pytest.main(["-s"])
# 设置pytest的执行参数 "-v":丰富信息模式, 输出更详细的用例执行信息
pytest.main(["-v"])
指定用例执行
- 执行全部用例;
# 直接执行pytest.main():自动查找当前目录下,以`test_`开头或者以`_test`结尾的 .py 文件
pytest.main()
- 执行指定py文件的用例;
# main函数中填写py文件,会运行指定文件内的测试任务;
pytest.main(["test_login.py"])
- 执行指定方法的测试用例;
# main函数中填写 `py文件::类::方法` (例如:test_mod.py::TestClass::test_method)
# 会运行指定文件内的、指定类的、指定测试任务;
pytest.main(["test_login.py::Test_Login::test_login"])
- 执行被标记的测试任务;
# 设置pytest的执行参数 "-m slow":会执行被装饰器 `@pytest.mark.marker` 装饰的所有测试用例;
# @pytest.mark.marker中,`marker` 字符名称可以自定义;例如定义为 `level1`
@pytest.mark.level1
def test_a(self):
pass
pytest.main(['-m=level1'])
测试报告输出
- allure 测试报告输出,详细使用方法见《Allure测试报告》
# 需要安装 allure-pytest
# 设置pytest的执行参数 "--alluredir=./report"
## --alluredir : 生成报告类型
## ./report : 生成报告存放路径及名称
pytest.main(['--alluredir=./report'])
- html 静态报告
# 需要安装 pytest-html
# 设置pytest的执行参数"--html=./report.html":执行测试文件并生成html格式的报告
## --html : 生成报告类型
## ./report.html: 生成报告存放路径,及报告名称
pytest.main(['--html=./report.html'])
# '--self-contained-html':将html的css样式合并到测试报告中
pytest.main(['--html=./report.html' , '--self-contained-html'])
- xml 格式报告
# 设置pytest的执行参数 "--junitxml=./report.xml":执行测试文件并生成xml格式的报告;
# 可以与jenkins做集成时使用
## --junitxml : 生成报告类型
## ./report.xml : 生成报告存放路径,及报告名称
pytest.main(["--junitxml=./report.xml"])
标签:py,--,常用命令,html,Pytest,pytest,report,main From: https://www.cnblogs.com/mzline/p/17419468.html注:输出测试报告的时候,如果运行的文件不再代码目录的 根目录 下,是不会生成测试报告的。
可在根目录下写一个run.py文件,然后运行即可生产测试报告
run.py
import pytest pytest.main(['-q', './project/testcase/test_secadmin.py', '--alluredir=./report'])