JMeter-长时间均匀执行样本

时间:2018-12-11 13:33:56

标签: testing jmeter load-testing

我想仅使用1个线程组执行测试。 我想运行n个不同的线程。假设测试需要1秒钟,那么我可以将线程设置为n并加速= 1,循环=1。我的想法是,如果我想让测试运行更长的时间,我应该增加加速秒数并提高相同比例的循环数。我在这里读到了这个主意:

http://www.testingjournals.com/5-must-know-features-thread-group-jmeter/

在方案2下的循环部分中,它表示: 每5秒(100/20)4个线程/请求将到达服务器。

但是我不明白这是否意味着4个线程在5秒钟内平均分布,还是每5秒钟会同时发出4个请求。

如果我想测试此完全相同的测试但需要更长的时间怎么办?我不希望有更多线程,因为每个线程都有连接开销。因此,我希望相同的n个线程在一秒钟内均匀分布地运行,持续的时间越来越多。如何确保使用相同的线程,并在我希望的任何时间范围内平均分配线程?我应该使用恒定吞吐量计时器吗?如果是这样,应该在环路和加速配置中设置什么?

2 个答案:

答案 0 :(得分:1)

如果您的目标是每秒执行X个请求-请使用以下测试元素之一:

所有上述操作都可以暂停 JMeter线程,以将吞吐量(每单位时间的请求)限制为给定数量。关于设置线程组:

  • 线程数:应该足够才能达到目标吞吐量。如果使用Throughput Shaping Timer,则可以使用Concurrency Thread Group并通过feedback function进行连接-在这种情况下,如果当前数量不足以达到/维护JMeter,JMeter将能够自动启动额外的线程。每秒所需的请求数量
  • 循环:勾选forever
  • 您可以使用线程组中的Scheduler Configuration -> Duration (seconds)设置所需的测试持续时间。

答案 1 :(得分:0)

让我们看一下场景

  

–方案2:线程数= 20,加速时间(秒)= 100&循环数= 4   每5秒(100/20)4个线程/请求将命中服务器。第一个线程完成第一轮执行后,将通过执行相同的HTTP请求来启动第二个循环。执行一直持续到所有20个线程执行所有HTTP请求4次为止。

共有20个线程,这些线程将在100秒内均匀执行

平均间隔为100/20 =创建线程之间的间隔为5秒

请注意,循环计数= 4,那么它将在每个线程内执行请求4次

请注意,时间大约是不准确的

因此启动期适合不创建分布均匀的新线程。

有关更多受控执行的信息,请参见JMeter插件的UltimateThreadGroup

  

“最终”表示不需要其他线程组插件。每个人在JMeter中都需要的功能终于可以使用:

     
      
  • 无限数量的日程表记录

  •   
  • 每个计划记录的单独的加速时间,停机时间,飞行时间

  •   
  • ,当然还有值得信赖的负载预览图

  •