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

JMeter集成Selenium在Linux运行时出现moz-proxy LDAP认证报错如何解决

Selenium集成JMeter在Linux环境运行Firefox代理LDAP认证报错解决方案

问题场景

  • 测试栈:JMeter + Selenium + Firefox Driver Config + Gecko Driver 开展性能测试
  • 现象:测试脚本在本地Windows环境可正常执行,部署到Linux服务器运行时抛出如下错误:

"The proxy moz-proxy://host:port is requesting a username and password. The site says: “LDAP”:"

  • 已完成前置排查:
    • Gecko Driver版本与Linux服务器安装的Firefox版本完全匹配兼容
    • 已在服务器系统代理配置、JMeter启动命令中传入代理认证凭据,仍触发报错

可行解决方案

1. 通过Firefox Driver Config直接预置代理配置与认证凭据

Linux环境下运行的Firefox无头实例不会自动读取系统代理配置、JVM启动参数传入的代理凭据,必须通过Firefox首选项直接注入配置,不要依赖外部传参:

  1. 打开JMeter测试计划中的Firefox Driver Config元件
  2. 找到*Preferences(首选项)*配置区,逐行新增以下键值对:
    network.proxy.type = 1
    network.proxy.http = <替换为实际代理IP/域名>
    network.proxy.http_port = <替换为实际代理端口>
    network.proxy.ssl = <替换为实际代理IP/域名>
    network.proxy.ssl_port = <替换为实际代理端口>
    network.proxy.no_proxies_on = 127.0.0.1,localhost
    signon.autologin.proxy = true
    network.automatic-ntlm-auth.trusted-uris = <替换为实际代理IP/域名>
    network.negotiate-auth.delegation-uris = <替换为实际代理IP/域名>
    network.negotiate-auth.trusted-uris = <替换为实际代理IP/域名>
    
  3. 删除JMeter启动命令中-Dhttp.proxyUser、-Dhttp.proxyPassword这类JVM代理参数,这类参数无法被Gecko Driver透传给Firefox实例,反而会造成配置冲突。
    注意:不要直接复用Windows环境导出的Firefox Profile配置文件,Linux下路径编码、权限模型差异会导致配置加载失效,直接在配置元件中逐行添加首选项即可。

2. 补充Firefox无头模式启动参数,修复沙箱权限问题

Linux服务器大多无桌面环境,默认启动的Firefox无头实例会开启沙箱隔离,root用户运行时还会触发权限限制,导致代理认证模块无法读取已配置的凭据:

  1. 在Firefox Driver Config的*Arguments(启动参数)*区域新增以下参数:
    --headless
    --no-sandbox
    --disable-dev-shm-usage
    --disable-gpu
    
  2. 给Gecko Driver、Firefox二进制文件赋可执行权限,执行命令:
    chmod +x /path/to/geckodriver /path/to/firefox
    

3. 兜底方案:通过Selenium脚本注册认证处理器

如果上述配置仍不生效,可以直接在WebDriver Sampler的脚本中注册代理认证逻辑,在发起请求前自动完成凭据校验,示例代码:

import org.openqa.selenium.UsernameAndPassword;
import java.net.URI;

// 注册代理认证凭据
webDriver.register(
    UsernameAndPassword.of("<替换为LDAP代理用户名>", "<替换为LDAP代理密码>"),
    URI.create("http://<替换为实际代理IP/域名>:<替换为实际代理端口>")
);
// 后续再执行目标页面访问逻辑
webDriver.get("<替换为测试目标地址>");

注意:该方案适配Gecko Driver 0.32及以上版本,低版本需先升级Gecko Driver与对应匹配的Firefox版本。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 10:21:18