前言
类似TestNG中的多线程并发执行用例,只是python叫多进程,目的就是批量执行测试脚本,从而节省自动化测试时间。
分布式执行用例的设计原则(重中之重的重点)
安装插件
pip3 install pytest-xdist -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
pytest-xdist特性
- 测试运行并行化:如果有多个cpu或主机,则可以将它们用于组合的测试运行。 这样可以加快开发速度或使用远程计算机的特殊资源。
- --looponfail:在子进程中重复运行测试。 每次运行之后,pytest都会等到项目中的文件更改后再运行之前失败的测试。 重复此过程,直到所有测试通过,然后再次执行完整运行。
- 跨平台覆盖:可以指定不同的Python解释程序或不同的平台,并在所有这些平台上并行运行测试。
使用方法
执行某个目录下所有用例
1、不使用分布式测试
命令行:
pytest -s
所需时间如下:
2、使用分布式测试
命令行:
pytest -s -n auto
所需时间如下:
3、指定需要多少个cpu来跑用例
pytest -s -n 2
效果如图:
4、pytest-xdist和pytest-html结合使用
示例命令:
pytest -s -n auto --html=report.html --self-contained-html
5、pytest-xdist按照一定的顺序执行
pytest-xdist默认是无序执行的,可以通过 --dist 参数来控制顺序