【问题标题】:JMeter Load Testing Time VerificationJMeter 负载测试时间验证
【发布时间】:2018-01-15 23:31:26
【问题描述】:

我使用 JMeter 来检查负载测试。

  • 当我亲自检查加载时间时,我用秒表记下了一个时间 8.5 秒

  • 当我使用 JMeter 运行相同的案例时,加载时间为 2 秒

    它们之间存在巨大差异,如何验证实际时间?

    例如:如果一个用户在 JMeter 中花费 9 秒加载表单,则加载时间为 2 秒

【问题讨论】:

  • 你在比较浏览器的加载时间是什么? jmeter 结果中的时间?
  • 谷歌浏览器
  • 让您的开发人员和功能测试人员利用浏览器内部的开发人员工具来确定各个时间点以及客户端组件的权重。这是最佳测量。如果它不能为一个人扩展或执行,那么它不会为许多人执行。如果你不了解一个人的性能包络,那么你就问许多人的性能包络问题还为时过早
  • 查看 Chrome 开发者工具下的性能标签
  • @JamesPulley 我的问题是如何检查我的网站上的负载测试以及使用 JMeter 的记录和用户数量以及我如何相信 JMeter 时间,因为它与实际时间完全不同

标签: jmeter


【解决方案1】:

客户端时间是一个复杂的项目,您可以从上面的 Chrome 开发人员工具的性能选项卡的剪辑中看到。客户端发生了很多事情,这确实会导致您使用 HTTP 协议测试工具(例如 JMETER(以及地球上的大多数其他性能测试工具))看到的时间与实际客户端渲染的时间之间存在差异。

您可以通过多种方式解决此 Delta:

  • 运行单个 GUI 虚拟用户。将您的计时记录命名为“Login”和“login_GUI”。两者之间的差值是您的客户权重。确保在专用主机上运行 GUI 虚拟用户以避免资源争用
  • 使用所有浏览器运行测试。这是 1995 年的最新技术。由于资源成本和试图计算服务器响应成本的偏差,整个行业转向协议级别的虚拟用户。一些人正试图将这种模型作为“最先进的”带回来。不是
  • 早先提出一个性能问题,也称为“左移...” 每个开发人员都可以使用这些开发人员工具,每个功能测试人员也是如此。如果您发现某个用户的客户端运行缓慢,请保持好奇并使用开发人员工具来确定“为什么?”如果您正在等待多用户性能测试来回答与客户端重量相关的问题,那么您等待的时间太长并且通常没有时间或资源以有意义的方式更改页面架构以降低客户端页面成本。这就是早期理解对做出改变具有巨大优势的地方。

我特意选择了上图来说明您所面临的确切挑战。请注意,组件的加载时间不到十分之一秒。这些是 JMETER 将提出的请求。但是该页面需要将近五秒钟的时间才能“呈现”。 Jmeter 没有损坏,它按设计工作。根据您的理解,需要更改哪些工具可用于提取特定统计数据进行分析。

【讨论】:

    【解决方案2】:

    您无法按原样比较 JMeter 与浏览器的加载时间,还因为您的浏览器将加载 JavaScript 文件,并且可以在 JMeter 不执行 JavaScript 时在页面加载时调用 JavaScript 函数。

    JMeter 不是浏览器,它在协议级别工作。据,直到...为止 就 web 服务和远程服务而言,JMeter 看起来像一个 浏览器(或者更确切地说,多个浏览器);但是 JMeter 没有 执行浏览器支持的所有操作。特别是,JMeter 不执行 HTML 页面中的 Javascript。也没有 像浏览器一样渲染 HTML 页面(可以查看 响应为 HTML 等,但时间不包括在任何 样本,并且在一个线程中只显示一个样本 时间)。

    只是附注 - 您可以使用 plugin 在 chrome 中检查确切的加载时间。

    【讨论】:

    • 你没有理解我的问题
    • 架构是性能测试人员的基础技能。一个人如何理解 jmeter(或任何其他 perftool)的工作原理是他们对应用程序架构成熟度的直接影响。
    • Saad,您的问题已被理解。答案并不多。
    • 我的问题是我想检查一个用户和多个用户的加载时间,首先我手动检查然后我用 JMeter 做同样的事情,但它给我的时间与实际时间完全不同我怎么能相信JMeter
    • 如果你在不同的电脑上签入chrome并且加载时间不同所以你不能相信chrome?
    【解决方案3】:

    如果有 4 倍的差异,表现良好的 JMeter 测试时间应该与真实用户时间相同或相似 - 很可能您的 JMeter 配置不正确。

    1. 可能是最重要的。确保您的HTTP Request 采样器配置为检索网页中引用的所谓“嵌入式资源”(图像、脚本、样式)

    2. 如果您的应用程序使用 AJAX 技术,请确保您也执行 AJAX 驱动的请求,并使用 Transaction Controller 将其经过的时间添加到主采样器。
    3. 确保你模仿浏览器的:

    假设以上所有内容,您应该收到类似于真实用户体验页面加载时间。有关上述提示的更多详细信息,请参阅How to make JMeter behave more like a real browser 文章。

    【讨论】:

      【解决方案4】:

      除了Jamesuser7294900提供的答案之外,请查找这些图片以帮助您了解秒表和JMeter给出的时间差异背后的原因。

      下图给出了 JMeter 如何提供时间背后的意识形态。

      下图给出了你如何测量时间背后的意识形态 你的秒表。

      请注意,当您花时间使用秒表时,浏览器会执行其他操作。这就是 JMeter 和您的秒表之间的巨大时间差异背后的原因。

      除此之外,请确保您对两个测试使用相同的测试环境条件(如相同的网络条件、相同的 LG 等)

      希望这会有所帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-28
        • 2012-07-29
        • 1970-01-01
        • 2017-11-26
        • 2018-05-28
        • 1970-01-01
        相关资源
        最近更新 更多