【问题标题】:Jmeter - load testing multiple thread groups consecutivelyJmeter - 连续负载测试多个线程组
【发布时间】:2017-07-19 12:28:41
【问题描述】:

我有 1 个线程组和 4 个 HTTP 请求,每个请求使用单独的 csv 来获取输入(json)。

我想对 100 个用户进行 10 个循环的负载测试。

预期结果:运行 HTTP 请求 1 100*10 次,然后移动到 HTTP 请求 2 并运行 100*10 次,依此类推。

第一个 HTTP 请求提供了正确的值,第二个提供了不正确的值,所以第一个 HTTP 请求给出 0% 错误,第二个线程给出 100% 错误。

问题:在运行线程时,第二个 HTTP 请求也给出 0% 错误而不是 100%,因为它以某种方式从与第一个 HTTP 请求相同的 csv 中选择值(它们都有单独的 CSV 数据使用具有不同数据的单独 csv 文件设置配置),而它们单独工作正常。

My test plan

CSV Data Set configuration

【问题讨论】:

  • 可以调用不同的csv文件吗?例如 1.csv、2.csv 并通过 ${__threadNum}.csv 获取文件?
  • 我正在使用 CSV 数据集配置调用不同的 csv 文件。但不知何故,在查看结果树中,第二个线程的响应是不正确的。如果我手动一次运行 1 个线程(禁用其他线程),它工作正常
  • 你能描述/展示你的测试计划吗?
  • 我有 4 个 api 需要使用单独的 csv。它们每个都需要运行 100*10 次,它们应该“一次一个”运行(API 1 在运行 API 2 之前运行 1000 次,依此类推)。为此,我为每个 api 使用单独的线程,每个线程都有 csv 数据集配置来读取 csv 数据。
  • 看起来你混淆了线程和线程组。线程组可以配置为连续运行,线程不能(或至少没有任何复选框)。

标签: jmeter


【解决方案1】:

在同一线程组中,所有线程将同时运行,没有配置选项允许同一线程组中的 HTTP 请求按顺序运行。因此,您可以通过以下方式之一修复它:

  1. 将每个 HTTP 请求放在自己的 Thread Group 中,并使用 Run Thread Groups Consecutively 选项

    Thread Group 1
        HTTP Request 1
    Thread Group 2
        HTTP Request 2
    ...
    
  2. 使用控制器和计时器让每个 HTTP 请求循环执行,所有线程在开始下一个请求之前等待:

    Thread Group
        Loop Controller <-- set Loop Count to 10
            HTTP Request 1
        Synchronizing Timer <-- set Group by parameter to 100, so you wait for all threads to finish with first loop
        Loop Controller
            HTTP Request 2
        Synchronizing Timer
        ...
    

【讨论】:

  • 谢谢,目前使用第一个选项,稍后将尝试第二个选项。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-28
  • 2012-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-26
相关资源
最近更新 更多