JMeter 用户数量和启动 - 可行的组合

JMeter number of users and ramp-up - feasible combination

我正在使用 JMeter 对上传功能进行性能测试,我对用户数量、加速和循环计数之间的组合仍然有点困惑,我不确定哪种方法最可行模拟100个用户同时上传。到目前为止,这是我尝试过的方法:

Scenario 1 : Thread Count = 100, Ramp Up Time (Seconds) = 1 & Loop Count = 1

这意味着每 0.01 秒 (1/100) 一个 Thread/Request 将命中服务器。执行将从一次一个请求开始。这样,我想 100 个用户几乎同时访问服务器。

Scenario 2 : Thread Count = 100, Ramp Up Time (Seconds) = 500 & Loop Count = 1

这意味着每 5 秒 (500/100) 一个 Thread/Request 将命中服务器。执行将从一次一个请求开始。

Scenario 3 : Thread Count = 100, Ramp Up Time (Seconds) = 500 & Loop Count = 100

每 5 秒 (500/100) 100 个线程/请求将到达服务器。一旦第一个线程完成第一轮执行,它将通过执行相同的 HTTP 请求开始第二个循环。执行一直持续到所有 100 个线程执行所有 HTTP 请求 100 次。

我做得对还是我误解了什么?哪个更可行?

JMeter 行为如下:

  1. 它在 ramp-up 期间启动 Number of Threads (users) 输入中定义的线程数。两者都在 Thread Group
  2. 中定义
  3. 每个线程(虚拟用户)开始执行 samplers upside down (or according to Logic Controllers)。 JMeter 会尽可能快地执行采样器,因此响应时间很重要。
  4. 当没有要执行的采样器或要迭代的循环时 - 线程正在关闭。

因此,如果您没有足够的循环,则可能是某些采样器已经完成而其他采样器尚未启动的情况。您可以使用 Active Threads Over Time 侦听器检查有多少线程处于活动状态。

确保 JMeter 将在完全相同的时刻对 100 个用户执行特定请求的唯一方法 是使用 Synchronizing Timer