【发布时间】:2020-01-02 14:26:17
【问题描述】:
我对 Jmeter 测试配置感到非常困惑。我找到了很多答案,但没有一个能解决我的疑问。我的线程组包含 10 个线程,并且都处于活动状态。我想每秒向服务器发送 20 个请求。加载需要持续 60 秒。
我放了
线程数:20 加速期:1 循环次数:60
持续 60 秒达到 20 个请求/秒的方法是否正确?
【问题讨论】:
标签: jmeter performance-testing
我对 Jmeter 测试配置感到非常困惑。我找到了很多答案,但没有一个能解决我的疑问。我的线程组包含 10 个线程,并且都处于活动状态。我想每秒向服务器发送 20 个请求。加载需要持续 60 秒。
我放了
线程数:20 加速期:1 循环次数:60
持续 60 秒达到 20 个请求/秒的方法是否正确?
【问题讨论】:
标签: jmeter performance-testing
对于每秒请求,我们不应该手动计算,而是让 JMeter 头疼。只要确保有足够的线程来达到 TPS 和 JMeter 将控制节奏。如果线程数较少而每秒请求数较多,则 JMeter 无法处理任何事情,并且不会满足 RPS。
使用吞吐量整形定时器实现每秒请求Throughput Shaping Timer
我需要多少线程才能产生所需的 RPS?
线程池大小可以像RPS * <max response time> / 1000 一样计算。期望的速率越高,您需要的线程就越多。响应时间越长,您需要的线程就越多。
例如,如果您的服务响应时间可能是 2.5 秒,目标 rps 是 1230,那么您必须有 1230 * 2500 / 1000 = 3075 线程。
最好有一些线程开销来处理意外的响应时间峰值。但要注意过多的开销,它会导致“最终峰值”。
在线程组和吞吐量整形计时器中使用以下设置: 如果未达到 20 TPS,则增加线程数。
【讨论】:
【讨论】:
只有在以下情况下,您的配置才是正确的:
正确的配置应该是这样的:
最好的方法是使用Concurrency Thread Group 和Throughput Shaping Timer 组合。它们可以通过Feedback Function 连接在一起,如果当前数量不足以执行所需的负载,并发线程组可以启动更多线程。
【讨论】: