pytest-xdist并发执行时的数据隔离

发表评论 1218 浏览量
目录:

pytest-xdist并发执行时的数据隔离

2024年2月记录,分类「pytest」。这是一篇偏实战的记录,保留了当时的判断过程和后续沉淀。

并发后暴露的问题

xdist 能缩短执行时间,也会把共享数据问题一次性暴露出来。账号、订单号、缓存 key、临时文件都需要隔离。

这类问题如果只写结论,过一段时间就很难复用,所以我把判断依据也留了下来。

隔离策略

  • 用 worker_id 给测试数据加后缀。
  • 每个 worker 使用独立账号池或独立租户。
  • teardown 失败时记录残留数据,方便清理。
@pytest.fixture
def unique_user(worker_id):
    return f"qa_user_{worker_id}_{uuid.uuid4().hex[:6]}"

命名规则

  • 并发执行结果和串行执行一致。
  • 失败不是因为数据被其他用例改掉。
  • 测试数据残留有清理脚本。

如果要自动化,我会先挑稳定、关键、失败后能定位的部分,不急着全量脚本化。

验收

并发自动化的难点不是启动多个进程,而是让每个进程拥有自己的干净现场。这个记录后续还可以继续补真实缺陷样本,让它从笔记变成团队检查清单。