【问题标题】:JMeter's 'loop count' behaviorJMeter 的“循环计数”行为
【发布时间】:2014-01-22 07:41:21
【问题描述】:

这与 JMeter 的循环计数行为有关。

我第一次使用 JMeter 对我的新 Web 应用程序进行负载测试。
首先,我已将 JMeter 配置为访问一个简单的 xhtml 页面 (home.xhtml)。

Load configuration in JMeter: 
Number of threads (users): 100
Ramp-Up period (in seconds): 1
Loop count: 100

通过上述配置,我尝试模拟100 users 每次访问主页 URL 100 次。我希望这可以模拟一个测试条件,其中 100 个不同的用户打开 100 个浏览器窗口,每个用户访问 URL 100 次,每个with the same browser window。因此,理想情况下,这应该只创建 100 个会话。但在测试结束时的堆转储中,我注意到有 10,000 (100 x 100) 个会话对象。

会话实例的类:org.apache.catalina.session.StandardSession

此行为会导致 Tomcat JVM 在较高负载(例如 1000 个用户,循环计数为 1000)时出现堆内存不足错误。在我的测试中,旧的堆(使用 JDK 附带的 VisualGC 工具监控)继续增长,最终导致堆内存不足错误。

使用的软件:

Tomcat 7.0.47
JSF 2.2 (Mojarra 2.1.6)
PrimeFaces 4.0
JMeter 2.11 (To create the load)
VisualVM (To monitor memory consumption & take heap dump)
Eclipse Memory Analysis Tool (MAT) 1.3 – Used to analyse the heap.

我从堆分析中的推断:当我看到堆中有 10,000 个会话实例时,我推断 JMeter 正在使用我的上述配置模拟 10,000 个用户,而不是模拟每个具有 100 个 URL 访问的 100 个用户。

问题:JMeter 的这种循环计数行为是预期的还是我遗漏了什么?

【问题讨论】:

    标签: performance jmeter performance-testing


    【解决方案1】:

    如果您不添加HTTP Cookie Manager,则每个请求将被服务器视为不同的用户。

    要模拟 100 个 VU,只需将 Cookie 管理器添加到您的测试计划中即可。

    每个“VU”将循环 100 次。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-02
      • 1970-01-01
      相关资源
      最近更新 更多