pytest-xdist:远程多主机 - 分布式运行自动化测试

简介:pytest-xdist插件使用新的测试执行模式扩展了pytest,最常用的是在多个CPU之间分发测试以加快测试执行,即

复制代码
pytest -n auto

同时也是一个非常优秀的分布式测试插件,分别支持ssh和socket两种方式实现master和worker的远程通讯。需要特别注意的是rsync功能被弃用,因为它的实现在远程工作者中再现开发环境方面存在缺陷,而且没有明确的解决方案。出于这个原因,rsync计划在4.0版中删除,让团队专注于一组较小的功能。请注意,SSH和套接字服务器不是计划删除的,因为它们是execnet功能集的一部分。

测试用例分布式运行的优势:

复制代码
1. 测试用例之间的运行是完全独立,没有依赖关系。

2. 既支持按顺序,也随机执行,测试用例执行不强制按照顺序执行。

3. 每个用例都可以重复执行,并且运行结果,都不会影响其他用例。

官方文档:

复制代码
https://pytest-xdist.readthedocs.io/en/stable/

历史攻略:

Pytest用例自定义 - 重复、并行、串行

Pytest+Yaml 数据驱动测试用例

pytest+allure安装和使用

pytest:并行和并发运行用例

python:消息推送 - 企业微信机器人推送

让你的pytest日志更有序:配置和使用技巧

Playwright - 04:pytest并行、并发、运行浏览器兼容性测试

安装:

复制代码
pip install pytest-xdist

由于SSH的方式相对写得云里雾里。本文使用socket的方式演示。

原理:开启socket服务,服务间进行信息交换和传递

下载文件:socketserver.py

复制代码
https://github.com/pytest-dev/execnet/blob/master/src/execnet/script/socketserver.py

# 官网的链接是下面这个,其实是错的,会报404错误 (估计是没更新或者不维护了)
# 应该是最上面这个链接。
https://raw.githubusercontent.com/pytest-dev/execnet/master/execnet/script/socketserver.py

case源码:test_case/test_demo.py

开启服务:

复制代码
python socketserver.py

使用socket远程执行:

路径不好判断的话,直接使用 ./
最好使用 -n auto 不然传递文件很慢。单个work很慢。

复制代码
pytest -n auto -d --tx socket=127.0.0.1:8888 --rsyncdir ./

# 在main.py 内 这些方式可能是无效的。
pytest.main(["-n", "auto", "-d" "--tx", "socket=127.0.0.1:8888", "--rsyncdir ./"])

云服务器开启socket服务案例:

复制代码
python socketserver.py

执行结果:在远程服务器端会生成一份相应的项目数据,因为我们使用的是 ./ 即 把当前项目远程拷贝到目标服务器执行

相关推荐
苍煜7 小时前
分布式事务生产实战选型对比
分布式
技术钱8 小时前
PyTest配置与API测试用例
servlet·测试用例·pytest
JAVA面经实录91710 小时前
企业级java+LangChain4j-RAG系统 限流熔断降级
java·开发语言·分布式·langchain
YaBingSec14 小时前
玄机网络安全靶场:Hadoop YARN ResourceManager 未授权 RCE WP
大数据·数据库·hadoop·redis·笔记·分布式·web安全
空中海15 小时前
第六篇:可靠性篇 — Sentinel 熔断限流与 Seata 分布式事务
分布式·sentinel
rustfs15 小时前
MinIO 国产平替,RustFS 发布 Beta 版本啦
分布式·docker·云原生·rust·开源
Mr_sst17 小时前
文件上传并发控制:为什么选Redisson可过期信号量?(避坑指南)
网络·数据库·redis·分布式·安全架构
深念Y17 小时前
当加密遇见分布式:Web3、去中心化与元宇宙的底层逻辑
分布式·web3·去中心化·区块链·元宇宙·加密·价值
运维老司机17 小时前
Kafka 单节点部署(Docker Compose + 数据持久化)
分布式·docker·kafka
byoass17 小时前
企业云盘全文检索实战:Elasticsearch集成与分布式搜索
网络·分布式·安全·elasticsearch·云计算·全文检索