1、pytest-random-order插件的安装
pip install pytest-random-order
最底部出现successfully证明安装成功
2、快速启动
pytest --random-order
pytest --random-order-bucket=<bucket_type>
pytest --random-order-seed=
(1)pytest --random-order + testcase(case文件或模块): 普通运行方式,case按照随机的方式执行,可以通过加 -v -v -v 的方式查看详细日志验证是否是随机运行
(2)pytest --random-order-bucket=<bucket_type> :–random-order-bucket=<bucket_type> 参数可以重新限制随机运行的作用范围,其中bucket_type可以是类、模块、包、全局(class, module, package, global)。
(3)pytest --random-order-seed= :–random-order-seed=随机种子数,seed是一段随机生成的一串数字,与monkey中的随机种子数作用一致(使用seed数可以是两次的case运行顺序保持一致)
3、简单例子
py文件代码:
import pytest
def test_one():
assert True
def test_two():
assert True
def test_three():
assert True
cmd命令行窗口运行命令:C:\Users\test_task>pytest --random-order -v -v -v test_pytest_random_order.py
(1)通过截图可以看到case的执行顺序是随机的。并且已经给出此次运行的bucket范围和seed值。
(2)通过使用相同的seed值运行,所以两次运行的顺序是相同的。
(3)目录结构,以及bucket方式运行
(4)若要禁用模块或类中的随机测试顺序,可以使用标记来禁用
如图:
可以注意到test_pytest_random_global.py文件的case按顺序执行的,注意此标记只能禁用class和module的随机顺序,对于package和global不起作用。
附源码地址:
pytest-random-order源码:https://github.com/jbasko/pytest-random-order