JMeter-长时间均匀执行样本



我只想用一个线程组执行一个测试。我想运行n个不同的线程。假设测试需要1秒,然后我可以设置threads=n和ramp-up=1,loop=1。我的想法是,如果我想让测试运行更长时间,我应该增加上升秒数,并以相同的比例增加循环数。我在这里读到了这个想法:

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

在场景2的循环部分,它说:每5秒(100/20(就会有4个线程/请求到达服务器

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

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

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

  • 恒定吞吐量计时器
  • 精确吞吐量计时器(自JMeter 4.0起提供(
  • 吞吐量整形定时器(可通过JMeter插件管理器安装(

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

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

让我们看看场景

–场景2:线程计数=20,上升时间(秒(=100&循环计数=4每5秒(100/20(就会有4个线程/请求到达服务器。一旦第一个线程完成第一轮执行,它将通过执行相同的HTTP请求来启动第二个循环。执行持续到所有20个线程执行所有HTTP请求4次。

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

意味着100/20=5秒间隔,直到线程创建之间

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

请注意,时间是近似的,而不是准确的

因此,斜升期适用于不创建均匀分布的新线程。

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

"Ultimate";意味着将不需要更多的线程组插件。JMeter中每个人都需要的功能,它们最终可用:

  • 无限数量的日程记录

  • 每个时间表的单独上升时间、停机时间、飞行时间记录

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

最新更新