我正在尝试使用Apache Jmeter作为测试工具来找出端点的吞吐量。
我需要在n threads(users) per second
到达端点,并且每个线程都应准确触发一个请求(样本)。
为此,我配置了 bzm-并发线程组。
Target Concurrency: 100
Ramp Up Time(sec): 1
Ramp-up Steps Count: 1
Hold Target Rate Time(sec): 10
Target Concurrency: 1000
Ramp Up Time(sec): 5
Ramp-up Steps Count: 5
Hold Target Rate Time(sec): 60
我期望的是
一种。配置一:10秒内只能触发1000个请求。
b。配置2:必须在60秒内(即1000 /秒)触发60000个请求。
答案 0 :(得分:1)
根据您的测试用例和测试持续时间设置,我认为您对线程和请求感到困惑。
线程是虚拟用户。线程和请求不同。
升级是所有用户到达测试的应用程序服务器的时间。
请求是由采样器模拟的,而线程是用户的模拟。
请注意- 请求的总数与吞吐量相关,而活动线程数执行相同的活动与并发有关。
您可以在测试计划级别使用Constant Throughput Timer来满足要求。
恒定吞吐量计时器使您可以维持服务器的吞吐量(请求/秒)。恒定吞吐量计时器只能暂停JMeter线程,以减慢它们的速度以达到目标吞吐量。另外,它仅在分钟级别上起作用,因此您需要正确地计算加速时间,并让测试运行足够长的时间。
以下是解决方法:
RPS *最大响应时间(秒)
Forever
由于恒定吞吐量计时器在分钟级别上工作,要达到X
RPS,您必须将“ 目标吞吐量”值配置为X*60/min
,然后将“ 计算”基于”值的吞吐量为“ 所有活动线程”。
例如,如果您需要1000 RPS,则在Constant Throughput Timer中的“ 目标吞吐量”值应为60000/min
。
在这些主题中查看我的答案,以更简短地了解您的情况。
希望这会有所帮助!