You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenoid未并行执行5个默认测试用例 配置5实例仅同时跑2个用例

Selenoid + ggr 并行数不符合预期排查方案

按优先级从高到低排查以下常见问题:

  • ggr侧配额配置错误
    90%的同架构并发上不去问题都是这个原因:ggr启动时会加载配额配置(旧版为quota.xml,新版为quota.yml),默认初始模板给单用户/用户组配置的并发数就是2,如果你没修改这个配置,哪怕Selenoid侧配了10个实例,ggr最多也只会转发2个并发请求到后端。
    排查操作:登录ggr部署机器,打开配额配置文件,确认对应访问账号/用户组下的count字段值为5,修改后必须重启ggr进程/容器才会加载新配置,热更新不生效。
  • Selenoid侧配置未实际加载
    很多时候配置文件写了5个实例,但Selenoid启动时没挂载对配置路径,实际读取的是容器内置的默认配置(默认配置单浏览器并发就是2)。
    排查操作:
    1. 执行docker inspect selenoid查看容器挂载卷配置,确认你写的browsers.json正确映射到了容器内/etc/selenoid/browsers.json路径
    2. 直接访问Selenoid节点的状态接口http://<selenoid节点IP>:4444/status,查看返回结果中对应浏览器版本的count字段值,该值为Selenoid实际生效的可用实例数,若返回值为2则说明配置未加载成功,修正挂载后重启Selenoid容器即可
  • 测试侧并行配置限制
    若集群侧配置全部正常,需要检查测试框架本身的并行线程数配置:比如TestNG、JUnit、pytest-xdist的并行worker数如果写死为2,哪怕集群能承载更多并发,测试框架本身也只会发起2个会话请求。
    验证方法:绕过测试代码,直接用脚本向ggr地址发起3个以上的会话创建请求,若能成功创建3个运行中的浏览器容器,说明问题出在测试代码/框架配置,和集群无关,验证命令参考:
    # 并发发起3个会话创建请求
    for i in {1..3}; do curl -X POST http://<ggr节点IP>:4444/wd/hub/session -d '{"capabilities":{"alwaysMatch":{"browserName":"chrome"}}}' & done
    
  • 资源阈值隐性拦截
    若你在browsers.json中给浏览器容器配置了CPU、内存、shmSize阈值,Selenoid会在创建新容器前校验宿主机剩余可用资源,资源不足时会直接拒绝新会话请求,表现为并发数卡在固定值上不去。
    排查操作:执行docker logs selenoid查看服务日志,搜索是否有insufficient resources、failed to start container类报错,对应调大资源配额或者释放宿主机占用资源即可。

同配置在其他项目可正常运行的前提下,反向代理限流、防火墙连接数限制这类问题概率极低,优先排查前三项即可。

内容的提问来源于stack exchange,提问作者smiles

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 15:57:50