本文主要是讲下up通过并发执行用例时候遇到的坑吧
一、pytest在并发执行用例下,用例的作用域会失效,因为xdist采用的是进程级处理用例,每条用例都是完全隔离的,所以在设计并行用例的时候,必须要保证每条用例完全独立,互不影响,包括用例执行顺序、依赖等都会失效,但是如果想实现所有用例都只执行一次,可以采用官方给的方案
如果有多个前置或后置需要用到临时目录的话,也可以分开写,利用多个临时文件来达成一次性的作用域
二、如果想实现执行用例前清楚allure的所有报告及执行完所有用例后利用命令生成allure报告,使用官方提供的这个办法也能实现,但是会有很多问题(例如报告生成不完整或者部分用例的attach没有存到报告中,因为可能在前置中提前被删掉了),相当于这种情况的作用域需要更广,必须在最开始和最末尾执行一次,所以可以使用钩子函数(我这里使用的是pytest_configure、pytest_unconfigure来达成的前置和后置)
在钩子函数中,必须要判断进入当前函数的进程,防止worker进入到函数中,因为master是不执行用例的,不用干苦力,所以只要master进入到函数中,就代表是最开始或者所有worker完成任务之后了,就能达到我们想要的目的
暂时遇到的就在这两个棘手的问题,希望能给小白们一些解决的思路
pytest-xdist:并发执行用例设计(脱坑)
最新推荐文章于 2024-04-26 00:30:13 发布