接口测试执行效率过慢,想提高接口测试的执行效率,缩短时间,通过 pytest-xdist 插件并发运行。 通过 pytest-dist 插件带上 --dist loadfile 参数运行,保证每个文件运行在相同的 worker 上。但接口测试在 excle 中的顺序必须从上到下执行才能顺利跑通,请问 .py 文件内部的执行顺序如何保证呢?
.py 文件内部的执行顺序就是从上往下的吧,具体问题能再描述下么?
是的,目前我们接口自动化是通过 pytest + excle 来实现,每一个 excle 的 sheet 页对应一个功能模块的接口用例,每个 sheet 页对应到一个 .py 文件,每个 .py 文件只有 1 个测试用例,这个用例做了参数化,数据来自于 excle 的 sheet 页,从上往下执行。 通过 pytest-xdist 这个插件的--dist loadfile 参数保证每个.py 文件运行在相同的 worker 上,但是每个测试用例经过了参数化形成了多个子用例,这个多个子用例之间的顺序怎么去保证呢?因为我们的用例有依赖关系,必须从上往下执行,如果顺序乱了,接口测试就会出现很多错误。
奥你的问题是,经过参数化后的多个子用例,在分布式执行时,如何按顺序执行?这个貌似没有办法吧,分布式本来就是并行的,并行又要保证先后顺序。 分布式执行用例的设计原则: 用例之间是独立的,用例之间没有依赖关系,用例可以完全独立运行。【独立运行】 用例执行没有顺序,随机顺序都能正常执行。【随机执行】 每个用例都能重复运行,运行结果不会影响其他用例。【不影响其他用例】
建议将用例解耦,不仍然你这个并行无意义
有依赖关系,前一个用例执行失败了,后面的用例怎么办? 上面董芳同学讲的是对的