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

Browsermob通过Sauce Connect无法拦截请求,HAR文件为空求助

排查BMP+Sauce Connect生成空HAR文件的问题

我来帮你梳理几个可能的排查方向,之前切换到Sauce Labs时也碰到过类似的HAR捕获失效问题,你可以逐一检查这些点:

  • 确认Remote WebDriver的代理配置是否生效
    启动RemoteWebDriver时,必须把BMP的代理地址正确注入到Sauce Labs的DesiredCapabilities中,而且要覆盖HTTP和HTTPS的代理设置。比如用Java代码的话,配置示例如下:

    Proxy bmpProxy = new Proxy();
    bmpProxy.setHttpProxy("your-bmp-machine-ip:8080"); // 替换成你的BMP监听地址
    bmpProxy.setSslProxy("your-bmp-machine-ip:8080");
    capabilities.setCapability(CapabilityType.PROXY, bmpProxy);
    capabilities.setCapability("acceptInsecureCerts", true); // 允许自签名证书(BMP解密HTTPS需要)
    

    另外,启动Sauce Connect时,需要添加--proxy http://your-bmp-machine-ip:8080参数,让SC把测试流量转发给BMP处理,这一步很容易漏掉。

  • 检查BMP的HAR捕获流程是否完整
    启动BMP后,不能直接用默认端口,需要先创建一个新的代理实例,再手动开启HAR捕获:

    # 创建代理实例,返回一个随机端口(比如8081)
    curl -X POST http://your-bmp-machine-ip:8080/proxy
    # 开启HAR捕获
    curl -X POST http://your-bmp-machine-ip:8080/proxy/8081/har
    

    测试结束后,还要主动调用导出接口获取HAR文件:

    curl http://your-bmp-machine-ip:8080/proxy/8081/har -o test.har
    

    如果跳过了创建实例或开启捕获的步骤,HAR文件肯定是空的。

  • 验证流量是否真的经过BMP
    在BMP所在机器上用tcpdump抓包,监听BMP的端口,看看有没有来自Sauce Connect的流量:

    tcpdump -i any port 8080
    

    如果没有流量,说明WebDriver的请求根本没走到BMP,要么是代理配置错了,要么是Sauce Connect的隧道没正确转发流量。同时可以查看SC的启动日志,搜索proxy相关的日志,确认是否成功连接到BMP。

  • 排查HTTPS证书信任问题
    因为你测试的是HTTPS站点(Google),BMP需要解密HTTPS流量才能生成HAR,这就需要测试浏览器信任BMP的根证书。除了在capabilities里设置acceptInsecureCerts: true,还可以手动把BMP的证书(默认在BMP安装包的lib目录下的jar包中提取)添加到Sauce Labs的浏览器配置中,确保证书被信任。

  • 检查版本兼容性
    旧版本的Browsermob Proxy可能和新版Sauce Connect的隧道机制不兼容,导致流量转发失败。建议升级到最新稳定版的BMP和Sauce Connect,再重新测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:11:05