【Python_pytest】pytest 实用插件
ytest 断言
原生 assert
# 无需安装
# 在断言失败时,会停止运行之后的代码或断言。 assert 1 == 1, "不相等"
pytest-check 模块的断言
# 会执行所有的测试用例,断言失败时,可自定义打印信息,更利于记录和排查问题。 pip install pytest-check
pytest-check.equal("1", "1", "错误原因:不相等")
多重断言 pytest-assume
# 在断言失败时,不会停止运行代码,会执行所有的测试用例,但断言失败时的结果不详细。 pip install pytest-assume
测试报告
pip install pytest-html
示例: https://www.cnblogs.com/phoenixy/p/16144461.html
元数据使用
pip install pytest-metadata # 元数据使用
日期模块
pip install python-dateutil
控制用例的执行顺序
pip install pytest-ordering
示例: https://www.cnblogs.com/phoenixy/p/16143132.html
分布式并发执行测试用例
pip install pytest-xdist
if __name__ == "__main__": pytest.main(["test_pressure.py::TestPressure", # "运行文件名"::"类名"::"方法名" "-v", # 日志打印 -q仅报告 -s仅控制台, -v 报告及控制台 "-n 2", # 不使用则注释掉,xdist多进程并发 -n后+num '-W', 'ignore:Module already imported:pytest.PytestWarning', # 忽略错误 ])
控制用例的依赖关系
pip install pytest-dependency
示例: https://www.cnblogs.com/phoenixy/p/16191241.html
失败重跑
pip install pytest-rerunfailures
用例随机执行
pip install pytest-random-order
重复执行
pip install pytest-repeat
--repeat-scope与pytest的fixture的scope参数是类似的:--repeat-scope可设置的值:①module:以整个.py文件为单位,重复执行模块里面的用例,然后再执行下一个(以.py文件为单位,执行一次.py,然后再执行一下.py);②class:以class为单位,重复运行class中的用例,然后重复执行下一个(以class为单位,运行一次class,再运行一次class这样);③session:重复运行整个会话,所有测试用例运行一次,然后再所有测试用例运行一次;④function(默认):针对每个用例重复运行,然后再运行下一次用例;
if __name__ == "__main__": pytest.main(["test_pressure.py::TestPressure", # "运行文件名"::"类名"::"方法名" "-v", # 日志打印 -q仅报告 -s仅控制台, -v 报告及控制台 "--count=4", # 重复执行3次 "-–repeat-scope=function", # 重复执行整个会话用例 "-x", # 遇到失败就停止运行 ])
-------------------------------------------------------------------------------------
如果万事开头难 那请结局一定圆满 @ Phoenixy
-------------------------------------------------------------------------------------
浙公网安备 33010602011771号