是否必须在 HTTP Request Defaults 中检查 "Retrieve All Embedded Resources" 以进行性能测试?

Is it mandatory to check "Retrieve All Embedded Resources" in HTTP Request Defaults for performance testing?

在性能测试期间"Retrieve All Embedded Resources"应该选中还是不选中?

我的分析:"Retrieve All Embedded Resources"不应该勾选。而且缓存也不应该自动清除。

注意: 一种。 "Retrieve All Embedded Resources" Jmeter 默认录制模板中未勾选选项。

如果 500 个用户将 2 个场景迭代 50 次,这是正确的响应时间。

我的分析:需要在"View Results in Table"监听器中引用"Transaction Controller - Sample Time [sum value]"。注意,需要使用并行控制器来处理并行请求,并且需要参考其中的最大响应时间。

  1. 如果您正在测试 Web 应用程序,则需要将 JMeter 配置为像真正的浏览器一样运行。真正的浏览器下载这些 "embedded resources",如图像、脚本、样式、字体、声音等,并并行执行(一个主请求后跟 6 个线程来下载嵌入式资源)。所以你应该:

    • 配置JMeter下载内嵌资源
    • 使用并行下载,即 6 个线程
    • 将资源位置限制在您正在测试的域中,以排除第 3 方资源,例如脚本的 CDN、来自外部站点的横幅等)
    • 缓存:如果你想模拟"new"用户每次迭代你应该清除缓存,如果你想模拟"returning"用户 - 他应该已经拥有资源他的缓存,不应该下载它们。

      更多信息:Web Testing with JMeter: How To Properly Handle Embedded Resources in HTML Responses

  2. 我们不知道您在测量什么,单个请求或整个业务事务的响应时间。就我个人而言,我会选择单个请求(但包括所有嵌入式资源,最终 AJAX requests simulated by the parallel controller if any) and look not into the average response time but rather at 90% percentile 作为平均值可以掩盖问题,而 90% 百分位数是 90% 的用户将获得的响应时间。