🐝 Swarm - 分布式自动化测试执行框架
"让测试飞一会儿"
概述
Swarm 是一个分布式自动化测试执行框架,核心思路是:让测试用例自己找人跑,自己跑完自己报。
你可以把它理解为 pytest-xdist 的分布式增强版——但多了任务队列、Web 管理、Allure 自动报告、客户端心跳检测、虚拟环境自动管理。
GitHub: https://github.com/mikigo/swarm
解决的痛点
- 测试用例跑几小时,单机扛不住全部卡死
- 几十台机器各跑各的,全靠手动分配任务
- 测试报告手动
allure generate100 次,打包上传累断手 - 每次换环境,依赖安装到怀疑人生
核心特性
快速开始
安装
启动服务端
启动后可访问:
http://localhost:8000— 根路径(版本信息)http://localhost:8000/docs— Swagger API 文档http://localhost:8000/api/reports/{task_id}— 查看测试报告
启动客户端
多台测试机器各自启动客户端即可加入集群。
创建并执行任务
方式一:命令行
方式二:配置文件(推荐)
管理任务
架构概览
任务执行流程
- 用户通过 CLI 或 API 创建任务 → 服务端生成任务(状态:pending)
- 服务端 Collector 模块解析 test_paths,通过 pytest --collect-only 发现测试文件
- 空闲客户端通过 WebSocket 发送
next请求领取任务 - 服务端将单个测试文件分配给该客户端(状态:running)
- 客户端执行流水线:Git Clone → 创建虚拟环境 → 安装依赖 → pytest 执行 → 上传 Allure 结果
- 客户端上报结果后继续请求下一个文件
- 所有文件完成后,服务端调用 Allure CLI 生成 HTML 报告
- 通过 API 即可访问报告
通信协议
WebSocket 协议
服务端与客户端通过 WebSocket 长连接通信。
客户端 → 服务端:
服务端 → 客户端:
REST API
配置文件
服务端配置
通过环境变量(SWARM_ 前缀)配置,使用 pydantic-settings:
CLI 配置
配置文件路径:~/.swarm/config.yaml(用户级)或 ./swarm.config.yaml(项目级,优先级更高)
项目结构
技术栈
开发工具链
测试
开发状态
版本:0.1.0(Alpha)
核心功能全部完成(14/16 任务),尚在积极的开发迭代中。
License
MIT
声明:本站所有文章,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。-- mikigo