JMeter运行时发送非配置列表请求的问题及处理方案问询
JMeter非预期发送请求问题处理方案
第一类静态资源额外请求原因&处理
你抓到的6个css、图片类非预期请求,是JMeter的检索嵌入式资源配置项导致的:
- 这个选项默认在HTTP请求默认值或者单个HTTP采样器的高级配置页中,开启后JMeter会自动解析返回HTML源码里的静态资源链接,主动发起请求拉取资源
- BlazeMeter Chrome插件录制脚本时,默认不会把这些自动加载的静态资源单独录成采样器,因此会出现你配置的采样器列表里没有,但实际运行时发送请求的情况
- 你提到浏览器访问时不会触发这类请求,大概率是浏览器开启了广告拦截、资源缓存或者特定规则屏蔽了对应请求,正常情况浏览器加载页面时也会拉取这些静态资源
处理方案:
- 如果你的性能测试只关注业务接口的响应性能,不需要统计静态资源加载耗时,直接取消
检索嵌入式资源的勾选即可,这类额外请求会直接消失 - 如果需要模拟真实用户完整加载页面的场景,保留该选项即可,不需要额外单独添加这些静态资源采样器
/signalr/hubs请求处理建议
/signalr/hubs是SignalR框架用于获取服务端集线器代理脚本的固定请求,是后续建立SignalR长连接、实现服务端主动推送(比如你业务里的LiveAlarm告警推送)的前置条件。
你观察到的JMeter发送该请求时Accept字段和浏览器不一致的问题,同样是因为该请求是JMeter通过检索嵌入式资源自动发送的,用的是JMeter默认请求头配置,和你手动配置的采样器请求头规则无关。
是否需要手动添加该请求到脚本,根据你的测试场景判断:
- 若你的测试场景不涉及任何依赖SignalR长连接的业务逻辑,仅测试普通HTTP接口流程:不需要添加该请求,直接取消
检索嵌入式资源勾选即可,JMeter不会再自动发送该请求 - 若你的测试场景包含依赖SignalR的业务(比如实时告警接收、实时消息推送等):必须手动将该请求添加到脚本中,同时按照浏览器的请求规则配置
Accept、Cookie、认证头等所有字段,保证请求和浏览器行为一致。添加完成后还需要在检索嵌入式资源的排除列表中添加/signalr/hubs路径,避免JMeter自动重复发送该请求。
内容的提问来源于stack exchange,提问作者Beklevir
相关产品推荐
相关产品推荐

