接口自动化用例变多了,其中有些用例更是需要等待。 最后造成的结果就是执行时间很长,因此打算考虑一下异步执行。 有这么几个问题 1.pytest 自身有插件可以做吗? 2.如果异步执行,会影响 conftest 里面的 fixture 吗 3.影响 allure 报告吗 求各位大佬解答
pytest xdist
你要的是分布式执行吧,异步的概念简单来讲是不立马等待响应结果。我的理解如果用例 (function) 异步了的话,pytest 会认为这个用例执行完了,后置 hook 应该会被立马触发
这个也不行,会多次执行 conftest 里面 fixture 设置为 session 的方法
https://cloud.tencent.com/developer/article/1819464?from=article.detail.1357912 这篇文章有说明官方如何操作 使用 pytest-xdist 时 scope = session 的 fixture 只执行一次的
我看过的,这个不行,官方的意思是,锁定一个文件,每次执行都时候从文件读取。 但是假如我有方法是需要在用例开始,和结束执行的呢,这个就做不到了
我试了一下,没有减少用例执行时长。 我第一个用例需要 5 分钟,第二个用例也是 5 分钟,最后执行结束还是花了 10 分钟
如果用例之间没有依赖,倒是可以考虑 celery,让 celery 去执行轮巡任务和断言,但是这样 pytest 可能会立即判断用例已执行完成,所以可能得看下 pytest 源码,或者看下哪个 hook 控制判断用例结束的标准,来做对应的修改(有这个思路,还没具体实践过)
可以参考我之前帖子里面应用 Jenkins 多配置的分布式执行方案,但是前提是每个用例是独立的,不能存在依赖关系