如何解决Robot Framework在Chrome中并行运行两个Robot文件的异常?
解决Robot Framework并行执行Chrome实例的问题
1. 使用官方推荐的并行执行工具
不要直接通过文件夹路径批量执行,改用pabot(Robot Framework专属并行执行工具):
- 先安装:
pip install pabot - 执行命令:
pabot --processes 2 ./你的测试文件夹路径
其中--processes 2指定同时启动2个进程,刚好匹配你的两个测试文件。
2. 隔离每个测试的浏览器会话
确保两个Robot文件各自独立管理Chrome实例,不要共享驱动对象:
- 在每个文件的
Suite Setup中单独初始化浏览器,示例代码:
*** Settings *** Suite Setup Open Browser ${测试URL} Chrome Suite Teardown Close Browser
- 禁止使用全局定义的driver变量,让每个测试套件自行维护会话生命周期。
3. 添加Chrome启动参数避免冲突
如果仍出现实例无响应,给Chrome配置独立的用户数据目录,防止会话共享:
*** Variables *** ${CHROME_OPTIONS} --no-sandbox --disable-dev-shm-usage --user-data-dir=/tmp/chrome-proc-${PROCESS_ID} *** Settings *** Suite Setup Open Browser ${测试URL} Chrome options=${CHROME_OPTIONS}
${PROCESS_ID}是pabot自动注入的进程ID变量,能保证每个进程的Chrome使用独立的缓存和配置。
4. 问题根源排查
你遇到的“单实例执行、其余停主页”问题,基本是以下原因导致:
- 多个进程共用了同一个WebDriver通信端口,只有第一个进程能建立有效连接
- 测试代码中存在全局driver实例,后续进程无法获取独立会话
用pabot配合上述隔离配置,可彻底解决这类并行冲突问题。
内容的提问来源于stack exchange,提问作者Harman
相关产品推荐
相关产品推荐

