首页 > 解决方案 > JMeter - 长时间均匀执行样本

问题描述

我想执行一个只有 1 个线程组的测试。我想运行 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 个线程在一秒钟内均匀分布运行,持续越来越多的秒数。我如何确保将使用相同的线程并在我希望的任何时间范围内均匀分布?我应该使用恒定吞吐量计时器吗?如果是这样,应该在循环和加速配置中设置什么?

标签: testingjmeterload-testing

解决方案


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

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

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

推荐阅读