使用 Jmeter 进行模拟 - 增加静态资源的 keepalive

Mimicking with Jmeter - increase keepalive on static resources

我在 运行 Jmeter 2.13,想知道如何模仿浏览器。

我已尽我所能确保 headers 相同(keep-alive、"Retrieve All Embedded Resources"、"User concurrent pool")但是当我监控我的 apache server-status 可以看到主页面请求保持存活状态,静态资源为open/download/close。如果我将此与使用 IE 访问站点进行比较,我会在静态资源上看到更长的 keep-alive。

有人对延长静态资源的 keepalive 有什么建议吗?

默认下载嵌入资源的线程继承parent采样器的所有设置,它包括:

  • 连接超时
  • 响应超时
  • 跟随重定向
  • 保持连接或关闭连接

你可以自己查看HTTPHC4Impl.java源码,相关方法是

protected void setupRequest(URL url, HttpRequestBase httpRequest, HTTPSampleResult res)

JMeter 和浏览器行为的差异可能是由于缺少 HTTP Cache Manager。现实生活中的浏览器下载嵌入式资源。 Well-behaved 浏览器发送 "Connection: close" header 以释放服务器和客户端资源。所有浏览器只下载一次嵌入式资源,在后续请求中资源从浏览器的缓存中返回。

因此请仔细检查 HTTP Request Defaults 测试元素中的设置(请记住,本地 HTTP 请求采样器设置会覆盖默认设置)