如何在jmeter ultimate线程组中控制频率

如何在jmeter ultimate线程组中控制频率,jmeter,Jmeter,我使用JMeter中的Ultimate Thread Group编写了一个简单的脚本,其中包含一些模拟登录流的请求 测试将在非GUI模式下运行。脚本如下所示: 思考时间-动态值[3-5]秒 登录 思考时间-动态值[3-5]秒 获取令牌 思考时间-动态值[3-5]分钟(用于模拟用户会话) 注销 最终线程组中的线程总数将为250。 初始延迟=0启动时间=250保持负载=400秒关机时间=250 我有一些关于终极线程组和客户端频率的问题 终极线程组 我能假设Jmeter每秒增加1个用户,直到我们有25

我使用JMeter中的Ultimate Thread Group编写了一个简单的脚本,其中包含一些模拟登录流的请求

测试将在非GUI模式下运行。脚本如下所示:

  • 思考时间-动态值[3-5]秒
  • 登录
  • 思考时间-动态值[3-5]秒
  • 获取令牌
  • 思考时间-动态值[3-5]分钟(用于模拟用户会话)
  • 注销
  • 最终线程组中的线程总数将为250。 初始延迟=0启动时间=250保持负载=400秒关机时间=250

    我有一些关于终极线程组和客户端频率的问题

    终极线程组

  • 我能假设Jmeter每秒增加1个用户,直到我们有250个用户吗
  • 然后考虑到动态思考时间,我是否可以期望服务器的吞吐量达到服务器可以回复的最大值
  • 我们每秒将有约250个来自客户端的并发请求,就像来自客户端的吞吐量一样??恐怕我会给服务器发太多的垃圾邮件
  • 客户端吞吐量

    例如,如果需要从客户端控制吞吐量,是否可以使用恒定吞吐量计时器(CTT)?例如,我有一个要求——登录流为250个并发用户,服务器吞吐量应该能够每秒处理5个请求

    因此,在使用CTT的情况下,我是否应该从脚本中删除所有思考时间(模拟用户会话的1-2-3分钟除外),并在脚本末尾只放置一个CTT

    我的最终设置是:

    最终线程组中的线程总数将为250。 初始延迟=0启动时间=250保持负载=400秒关机时间=250

    如何将CTT配置为每秒从客户端加载2个请求,并考虑250个并发用户?

    使用您的设置

  • 是的,最终线程组将每秒添加1个用户,直到您获得250个用户
  • 不,因为您使用的是思考时间(希望是统一的随机计时器),所以从JMeter到服务器的点击率可能不会达到最大
  • 不,正如前面提到的,因为你的思考时间在3-5秒之间,你不会经历250的RPS。但是,如果在不添加计时器来控制吞吐量的情况下删除思考时间,则有可能获得更高的吞吐量(有时甚至超过250)
  • 正如您所计划的,您可以使用恒定吞吐量计时器(在这种情况下,您可以删除思考时间)。但是在这种情况下,如果您有每秒2个请求的请求,我建议您使用jp@gc-吞吐量成形计时器。因为出于某种原因,它似乎更适合终极线程组

    为了给您一些输入,我在JMeter中创建了一个类似的场景,请查看下面的图片

    在此示例中

    启动线程:25,初始延迟:0,启动时间:25,保持负载:10,关闭时间:25

    在执行过程中,如果您检查jp@gc-活动线程随时间变化图,如下所示

    这是您添加思考时间时的RPS(吞吐量)

    如果您删除了思考时间,并且没有计时器来控制吞吐量,那么这就是您的RPS(如您所见,即使我有25个线程,RPS也可以超过25个)

    但是,当您删除思考时间并添加一个计时器(我添加了一个计时器,将开始和结束RPS设置为2,用于60秒)以控制吞吐量时,将如下所示。如您所见,在任何给定时间,吞吐量都不会超过2。

    如果你加上两个定时器(60秒为RPS2)并认为RPS的时间会是这样的。在这个图中,您将看到一些RPS大于2的场景。这是因为思考的时间。(如果前一个请求的思考时间为5s,而新两个请求的思考时间为3s),则可能发生这种情况。但这不会损害测试。

    所以在你的计划中,你加上

    • 最终线程组中的线程总数将为250。初始延迟=0启动时间=250保持负载=400秒关机时间=250
    • 吞吐量成形计时器或CTT,用于控制预期吞吐量
    • 保持思考时间,创造更现实的行为(可选)
    注意:您可以始终使用虚拟采样器并尝试检查您是否达到计划的预期结果

    希望这有帮助。
    干杯

    非常感谢您的好评。决定使用思考时间,目前没有客户TPS要求