RHEL 8环境下JMeter运行Chrome WebDriver Sampler测试无结果求助
问题排查:RHEL 8无头模式下JMeter测试无结果返回
问题背景
- 运行环境:RHEL 8 服务器,JMeter 采用Chrome无头模式执行Web自动化测试
- 异常现象:测试执行后无任何结果返回(JMeter结果树为空,无请求记录与响应数据)
- 已验证项:ChromeDriver版本与服务器上的Chrome浏览器版本完全匹配;相同测试用例在Windows环境可正常运行并返回结果
排查步骤
1. 补全无头模式启动参数
无头模式下Chrome需要特定参数才能在无桌面环境的服务器上正常运行,确保JMeter的Chrome Driver配置中包含以下关键参数:
--headless=new --no-sandbox --disable-dev-shm-usage --disable-gpu --window-size=1920,1080
--no-sandbox:服务器无桌面用户会话时必须启用,绕过Chrome的沙箱限制--disable-dev-shm-usage:避免服务器/容器环境中共享内存不足导致的浏览器崩溃
2. 直接验证Chrome浏览器可用性
在服务器终端执行以下命令,确认Chrome本身能正常启动并渲染页面:
google-chrome --headless=new --no-sandbox --disable-dev-shm-usage --dump-dom https://www.example.com
若命令无输出或报错,说明Chrome安装不完整或缺失依赖(如libX11-devel、libXext-devel等基础图形库),需先修复浏览器运行环境。
3. 开启日志定位启动/执行异常
- ChromeDriver日志:在JMeter的Chrome Driver配置中添加参数:
执行测试后查看--verbose --log-path=/tmp/chromedriver.log/tmp/chromedriver.log,重点关注Failed to start、Timeout、Connection refused类错误。 - JMeter日志:检查
jmeter.log文件,搜索chrome、webdriver相关条目,排查测试执行过程中的异常抛出信息。
4. 验证网络与权限配置
- 用
curl或wget测试服务器到目标测试站点的连通性:
确保无网络拦截、DNS解析失败等问题。curl -I https://your-test-site.com - 确认运行JMeter的用户拥有以下权限:
- 访问Chrome安装目录(如
/usr/bin/google-chrome) - 读写临时文件目录(
/tmp) - 目标站点的网络访问权限
- 访问Chrome安装目录(如
5. 适配无头模式的页面加载策略
部分页面会针对无头模式做限制,可尝试以下调整:
- 添加用户代理参数模拟桌面浏览器:
--user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" - 在JMeter中设置更长的页面加载超时时间,或添加显式等待逻辑(如等待目标元素出现后再执行后续操作)
内容的提问来源于stack exchange,提问作者kent steinwall
相关产品推荐
相关产品推荐

