JMeter启动多个Firefox实例时部分窗口空白无操作且报连接超时如何解决?
错误根因定位
报错核心信息:
org.openqa.selenium.TimeoutException: 无法建立连接,目标计算机持续拒绝连接。(os error 10061)
报错发生阶段:FirefoxDriver.createBrowser浏览器实例初始化会话阶段
该错误是短时间内并发启动25个Firefox实例时,系统资源(CPU、内存、本地网络端口)不足,或者Driver与浏览器版本不匹配,导致部分Selenium调试会话建立失败,浏览器停留在空白状态无后续操作。
解决方案
- 调整线程启动斜率:将60秒启动25个线程的配置拉长到90~120秒,降低Driver实例的并发初始化压力,给每个浏览器足够的启动和会话建立时间。
- 优化Firefox启动参数:在JMeter的FirefoxDriver配置中添加以下启动参数,降低实例资源占用:
不需要可视化观察测试过程时,开启无头模式可降低40%以上的资源占用,大幅减少启动失败概率。--headless=new --no-sandbox --disable-dev-shm-usage --disable-extensions --disable-gpu - 校验版本兼容性:当前使用的Selenium版本为3.14.0,需确保对应的geckodriver版本在v0.30.0及以下,Firefox浏览器版本不高于91ESR,版本不匹配会大概率偶发会话建立失败问题。
- 调整Windows网络配置:修改注册表将
TcpTimedWaitDelay值设为30秒,扩大临时端口范围,避免短时间内大量Driver启动导致的端口占满、连接被拒问题。 - 拆分并发负载:单台Windows设备同时运行的Firefox UI测试实例建议不超过15个,25个并发已超过普通办公设备的负载上限,可拆分到多台设备通过Selenium Grid分布式执行,降低单台设备压力。
内容的提问来源于stack exchange,提问作者lodecesa
相关产品推荐
相关产品推荐

