pytest:多线程并行和分布式执行;结合pytest-html生成测试报告
一、假如项目中有测试用例1000条,一条测试用例执行需要一分钟,一个测试人员需要1000分钟才能完成一轮的回归测试。通常我们会用人力成本去换时间成本,加几个人一起执行,时间就会缩短,如果十个人一起执行只需要100分钟,这就是一种并行测试,分布式的场景。pytest-xdist是pytest分布式执行插件,可以多个CPU或主机执行,这款插件允许用户将测试并发执行(进程级并发),插件是动态动态决定测试用例执行顺序的,为了保证各个测试能在各个独立的线程 里正确的执行,应该保证测试用例的独立性(这也符合测试用例设计的最佳实践)。
安装
pip install pytest-xdist
多个CPU并行执行用例,需要在pytest后面添加 -n 参数,如果参数为auto,会自动检测系统的CPU数目.如果参数为数字,则指定运行测试的处理器进程
pytest -n auto
pytest -n [num]
实例:
某个项目有200条测试用例,每条测试用例之间没有关联关系,互不影响,这200条测试用例需要在1小时之内完成,可以加个 -n 参数,使用多CPU并行测试
运行方法:
pytest -n 4
进入到项目目录下,执行pytest可以将项目目录下所有测试用例识别出来并且运行,加上 -n 参数,可以指定4个CPU并发执行,大量的测试用例并发执行提速非常明显
二、测试报告通常在项目中尤为重要,报告可以体现测试人员的工作量,开发人员可以从测试报告中了解缺陷情况,因此测试报告在测试过程中的地位至关重要,测试报告为纠正软件存在的质量问题提供依据,为软件验收和交互打下基础,测试报告根据内容的侧重点可以分为版本测试报告和总结测试报告。执行完pytest测试用例,可以用pytest-html插件生成HTML格式的测试报告
安装:
pip install pytest-html
执行方法:
pytest --html=path/to/html/report.html
结合pytest-xidist使用
pytest -v -s -n 3 --html=report.html --self-contained-html