JMeter Selenium插件Remote Driver Config如何配置无头模式
Selenium Grid场景下Remote Driver配置Chrome无头模式方法
'Remote Driver Config'采样器默认没有提供无头模式的可视化勾选选项,需要通过自定义浏览器能力参数完成配置,操作路径如下:
- 基础配置:打开'Remote Driver Config'采样器,先将目标浏览器类型选为
chrome,正确填写Selenium Grid Hub的连接地址,确认测试机能正常连通Grid服务。 - 参数配置:找到采样器的Chrome Capabilities(部分旧版本插件命名为Chrome Options/附加能力配置)区域,新增配置项,参数键填写
goog:chromeOptions,参数值传入如下JSON结构:
{ "args": ["--headless=new", "--disable-gpu", "--no-sandbox", "--disable-dev-shm-usage"] }
说明:
--headless=new是Chrome 112及以上版本官方推荐的无头模式参数,对现代Web特性的兼容性和原生Chrome完全一致;如果你的Grid节点部署的是112以下的旧版Chrome,将该参数替换为--headless即可。其余三个参数为Grid环境运行的常用兼容参数,可避免容器部署、root权限运行场景下的浏览器启动失败问题。
- 旧版本插件适配:如果你使用的Selenium JMeter插件版本较低,没有提供结构化的能力配置入口,可以直接在采样器前添加JSR223 Sampler,用Groovy脚本手动初始化带无头配置的Remote Driver,脚本示例如下:
import org.openqa.selenium.chrome.ChromeOptions import org.openqa.selenium.remote.RemoteWebDriver import java.net.URL ChromeOptions chromeOpts = new ChromeOptions() // 添加无头模式及兼容参数 chromeOpts.addArguments("--headless=new") chromeOpts.addArguments("--disable-gpu") chromeOpts.addArguments("--no-sandbox") chromeOpts.addArguments("--disable-dev-shm-usage") // 替换为实际的Grid Hub地址 RemoteWebDriver driver = new RemoteWebDriver(new URL("http://{your-grid-hub-ip}:4444/wd/hub"), chromeOpts) // 将driver实例存入JMeter上下文,供后续Web操作采样器调用 ctx.getVariables().putObject("driver", driver)
配置完成后可以先用单线程发起调试请求,在Selenium Grid的自带控制台查看对应会话的启动参数,能看到headless相关参数、且节点侧不会弹出实体Chrome窗口,就说明配置生效,可以正常开展后续Grid分布式测试。
内容的提问来源于stack exchange,提问作者Sashika Wijesinghe
相关产品推荐
相关产品推荐

