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

JMeter录制同一请求多次,浏览器开发者工具仅显示单次请求

JMeter录制重复请求的原因及解决办法

可能原因

  • 嵌入式资源重复捕获:开启「下载嵌入式资源」后,页面内静态资源(如图片、脚本)若存在重复引用,或JMeter未正确识别缓存状态,就会重复录制这类请求。浏览器开发者工具默认合并缓存命中的重复请求记录,而JMeter会如实记录所有经过代理的请求,包括浏览器隐去的缓存复用尝试。
  • 缓存管理器配置偏差:HTTP Cache Manager若未勾选「Use Cache-Control/Expires headers」,或者缓存策略与浏览器不一致,JMeter不会复用已缓存资源,会重复发起请求。
  • 并发下载线程干扰:设置6线程并发下载嵌入式资源时,网络延迟或资源加载依赖可能导致线程重复触发相同资源请求,进而被JMeter重复录制。
  • 请求重试/预加载未被浏览器展示:部分页面会在资源加载失败时自动重试,或预加载资源,这类请求浏览器开发者工具可能不显示,但会经过JMeter代理被记录。

解决措施

  • 调整嵌入式资源下载规则:
    • 在HTTP Request Defaults中勾选「Do not download embedded resources again if they match a previous request」,避免重复下载相同资源。
    • 通过「URL Patterns to Include/Exclude」过滤静态资源(如*.jpg、*.css),仅录制核心业务请求。
  • 优化缓存管理器设置:
    • 勾选HTTP Cache Manager的「Use Cache-Control/Expires headers」,让JMeter遵循浏览器缓存规则复用资源。
    • 确保Cache Manager作用域覆盖所有录制请求。
  • 降低并发线程数:将嵌入式资源下载的并发线程数调低至1-2,观察是否仍出现重复录制。
  • 对比请求细节排查差异:
    • 开启JMeter「View Results Tree」,查看重复请求的Cache-Control、If-None-Match等缓存相关头信息,与浏览器对应请求对比,确认是否为缓存处理差异导致。
  • 过滤重试类请求:若存在重试请求,可通过响应码、请求头特征(如Retry-After)在JMeter中过滤掉这类重复记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 20:12:42