這9款優秀的pytest插件,讓你的自動化測試項目更好用

pytest-repeat 重复运行测试

pytest-repeat是一个可以在一个测试会话中重复运行测试的pytest插件,如果测试总是断断续续的失败,这个插件就比较有用,默认是执行一次的,执行多次需要通过命令行参数指定

pytest -v -k --count=2

这9款优秀的pytest插件,让你的自动化测试项目更好用

有需求的童鞋还可以看看这个pytest-rerunfailures这个插件也是关于失败重跑的

pytest-xdist 并行运行测试

通常测试都是一次执行的,虽然顺序可能每次都不一样。当测试用例不需要访问共享资源的时候,或者即使访问共享资源也不会对case之间造成影响,那么就可以通过这个插件进行并行运行,来提高自动化测试反馈速度。这本身也是我们做自动化测试的目的,尽早的暴露问题。通过pytest-xdist插件可以指定进程数量来同时运行


这9款优秀的pytest插件,让你的自动化测试项目更好用

上面这个测试如果顺序运行,至少需要10秒的时间,加入并行运行测试,看一下对比效果

这9款优秀的pytest插件,让你的自动化测试项目更好用

指定参数-n autp选项可以自动获取系统的CPU数量,也可以指定具体数值。

pytest-timeout 给测试设置超时时间

一般情况下,pytest里的测试时没有时间限制的,如果测试中设计请求服务、链接资源,这个时候加上超时时间还是比较好的。

pytest-timeout这个插件可以在测试代码上和命令行上加超时时间,测试代码标注的超时时间优先级高于命令行。

<code>

import

pytest

import

time

def

test_parallel

(x)

:

time.sleep(

1

) /<code>

pytest --timeout=0.5 test_parallel.py 指定超时时间是0.5秒,执行上面的case一定会报错

这9款优秀的pytest插件,让你的自动化测试项目更好用

pytest-instafail 查看错误的详细信息

pytest通常会在运行结束后,才会显示错误和失败用例的堆栈信息,当我们运行的测试用例较多的时候,希望在有用例执行失败的时候就停止运行,那么这个插件可以通过在命令行指定--instafail参数就可以实现。

pytest-sugar 给测试运行过程中添加进度条

这9款优秀的pytest插件,让你的自动化测试项目更好用


pytest-html 给测试生成HTML报告

通过指定--html=report.html在运行结束后会生成报告


这9款优秀的pytest插件,让你的自动化测试项目更好用

报告不仅展示了各种类型的运行结果,还可以通过复选框进行筛选。

pytest-emoji 把测试状态符合替换成表情

命令行指定 --emoji 参数

这9款优秀的pytest插件,让你的自动化测试项目更好用

有兴趣的同学可以去看一下它的python源代码,她是通过hook函数来改变表情符合

pytest-cov 测试覆盖率

pytest --cov=src 指定测试源代码,--cov-report=html 指定生成覆盖率测试报告

pytest-pep8、pytest-flake、pytest-pycodestyle

pytest-pep8是pytest-pycodestyle的老版本,都是检查代码是否符合PEP8规范,这两个插件只是检查是否符合代码风格,pytest-flake会做更多的静态分析检查


分享到:


相關文章: