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

JMeter录制脚本时_blazor WebSocket连接失败、资源加载异常咨询

JMeter录制Blazor站点时WebSocket连接失败、资源加载异常解决方案

问题表现

  • 使用JMeter录制自有网站脚本时,浏览器控制台抛出报错:WebSocket connection to 'wss://{base-url}/_blazor?id=Fjsogks_I845JsidSR' Failed
  • 仅能完成页面登录、跳转至仪表盘的操作,图片、JS文件等资源均无法加载,仪表盘内容完全不能正常展示
  • 已尝试公开渠道可检索到的所有相关解决方案,均未生效
  • 控制台报错参考:控制台报错截图

问题根因

Blazor Server底层依赖SignalR的WebSocket长连接实现交互逻辑,JMeter默认的HTTP(S)录制代理对WebSocket协议升级请求的兼容存在缺陷,同时默认配置会过滤部分静态资源请求,加上证书信任问题,就会触发上述报错。

解决步骤

  1. 先解决基础证书与链路问题
    找到JMeter安装目录下bin/ApacheJMeterTemporaryRootCA.crt临时根证书,导入到录制所用浏览器的「受信任的根证书颁发机构」列表,同时导入系统证书信任存储,重启浏览器后关闭所有代理插件、VPN、抓包类软件,避免请求被二次代理拦截。
  2. 调整JMeter录制配置
    • 打开HTTP(S)测试脚本录制器,清空默认的「URL Patterns to Exclude」排除规则,不要过滤_blazor路径和.js、.css、.png、.jpg、.woff等静态资源后缀,仅添加你不需要录制的第三方统计、广告类域名规则。
    • 在采样器设置中勾选Retrieve All Embedded Resources,将HTTP请求实现切换为HttpClient4,默认Java实现对WebSocket握手头、HTTP2的兼容性极差。
    • 打开bin/jmeter.properties配置文件,找到websocket.impl配置项,修改值为org.eclipse.jetty.websocket,保存后重启JMeter生效。
  3. 适配Blazor SignalR连接规则
    在录制器的请求头默认值中,添加三个握手头:
    • Connection: Upgrade
    • Upgrade: websocket
    • Sec-WebSocket-Version: 13
      如果不需要压测实时交互逻辑,直接在浏览器开发者工具网络面板中拦截_blazor路径的请求,Blazor会自动降级为长轮询模式,不影响基础页面功能和脚本录制。
  4. 兜底方案(100%适配)
    如果调整配置后依然报错,直接放弃代理录制模式:在无代理状态下正常操作网站全流程,用浏览器开发者工具导出所有请求为HAR格式文件,再将HAR文件导入JMeter直接生成测试脚本,完全绕开代理层的协议兼容问题。

若后续需要对WebSocket长连接做压测,单独安装JMeter WebSocket Samplers插件,补全wss连接的采样逻辑即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 18:54:26