jmeter 结果树中缺少项目

missing items in jmeter result tree

这是我的测试结构。

recording controller
    transaction controller
        homepage (transaction controller)
            HTTP Request 1
                Response Assertion (response code = 200)
            HTTP Request 2
                Response Assertion (response code = 200)
            HTTP Request 3
                Response Assertion (response code = 200)
            ....
        login (transaction controller)
            HTTP Request 1
                Response Assertion (response code = 200)
            ....
        logout (transaction controller)
            HTTP Request 1
                Response Assertion (response code = 200)
            ....
    View Results Tree

测试放置在终极线程组中(一次最多 20 个线程)。我放入每个 HTTP 请求响应断言。

当 运行 测试时,然后在结果树中查看所有内容都是绿色的,所以 OK。 但是当我点击结果树时,我意识到,有时有些项目是 失踪,但不是每次。 参见:例如:

transaction controller
    homepage
    login
    (logout is missing !!!)

问题是为什么?

使用 Ultimate Thread Group 时,您没有固定数量的 loops/iterations,因此如果您指定一些“保持负载”时间跨度,线程(虚拟用户)将在“中间”关闭" 的测试执行,即在 homepage 交易的某个地方 - 它根本无法完成所有剩余的请求。

喜欢

  • 如果您将 Hold Load For 设置为 1 秒 - 只会执行 1 个请求
  • 如果您将 Hold Load For 设置为 5 秒 - 将执行几个请求
  • 如果您将其设置为 5 分钟 - 很可能所有请求都会至少执行一次,但请求的数量主要取决于您的应用程序响应时间

因此,如果您希望执行整个序列 - 切换到“正常”Thread Group 并指定所需的迭代次数

同时使用 JMeter GUI 模式和 View Results Tree 侦听器来执行负载测试并不是最好的主意,您 should be running your JMeter tests in command-line non-GUI mode and use HTML Reporting Dashboard 进行结果分析。