pabot
是 Robot Framework 的并行测试执行工具,用于加速测试运行,特别适用于大型测试套件。它基于 multiprocessing
实现,可以同时在多个进程或机器上运行测试,显著减少执行时间。
1. pabot
的基本用法
安装
pip install robotframework-pabot
基本命令
pabot [options] path/to/tests
• 默认情况下,pabot
会使用所有可用的 CPU 核心并行运行测试。
2. 常用参数
参数 | 说明 |
---|---|
--processes <N> | 指定并行进程数(默认:CPU 核心数) |
--testlevelsplit | 按测试用例拆分(默认按套件拆分) |
--suitesfrom <output.xml> | 从已有结果文件拆分测试 |
--ordering <orderfile.txt> | 按指定顺序运行测试 |
--argumentfile <args.txt> | 从文件读取参数 |
--pabotlib | 启用 PabotLib(用于共享变量) |
--resourcefile <lockfile> | 管理共享资源(避免冲突) |
--artifacts <dir> | 保存临时文件(用于调试) |
--verbose | 显示详细日志 |
3. 典型使用场景
(1) 并行运行测试(默认按 Suite 拆分)
pabot --processes 4 tests/
• 使用 4 个进程并行运行 tests/
下的所有测试。
(2) 按测试用例拆分(--testlevelsplit
)
pabot --testlevelsplit --processes 8 tests/
• 每个测试用例单独分配一个进程(适用于大量小测试)。
(3) 合并多个输出
pabot --processes 4 --outputdir results tests/
rebot results/output.xml # 合并结果
• 并行运行后,用 rebot
合并报告。
(4) 避免资源冲突(--resourcefile
)
pabot --resourcefile locks.txt tests/
• 使用 locks.txt
管理共享资源(如数据库、端口等)。
(5) 与 pabotlib
共享变量
pabot --pabotlib tests/
• 允许不同进程共享变量(需在测试中使用 PabotLib
库)。
4. 与 robot
的区别
特性 | robot | pabot |
---|---|---|
执行方式 | 单进程 | 多进程并行 |
适用场景 | 小型测试 | 大型测试套件 |
资源管理 | 无 | 支持 --resourcefile |
变量共享 | 直接支持 | 需 PabotLib |
报告生成 | 直接生成 | 需 rebot 合并 |
5. 注意事项
- 测试独立性:并行测试应尽量减少依赖(如共享数据库、文件等)。
- 日志和报告:
pabot
会生成多个output.xml
,需用rebot
合并:rebot output.xml # 合并所有进程的结果
- 资源竞争:如果测试访问共享资源(如数据库、端口),使用
--resourcefile
避免冲突。 - 变量共享:跨进程共享变量需使用
PabotLib
。
6. 示例
并行运行并生成报告
pabot --processes 4 --outputdir results tests/
rebot results/output.xml
• 4 个进程并行运行,最终合并报告。
按测试用例拆分
pabot --testlevelsplit --processes 8 tests/
• 每个测试用例独立运行,适用于大量小测试。
总结
• pabot
是 Robot Framework 的 并行测试工具,适用于加速大型测试套件。
• 主要参数:
• --processes
:控制并行度
• --testlevelsplit
:按用例拆分
• --resourcefile
:管理共享资源
• 运行后需用 rebot
合并报告。
适用于 CI/CD 流水线 或 大规模自动化测试,可显著减少执行时间! 🚀