apache / apache/jmeter

Constant Throughput timer with shared algorithm generate wrong throughput when target throughput is big

Open
#6,278 5 comments 0 reactions 0 assignees View on GitHub
defect to-triage
Dominant language
Java
Stars
9.5k
Forks
2.3k
Avg merge
1d 22h
Merged PRs (30d)
5

Description

### Expected behavior

_No response_

### Actual behavior

_No response_

### Steps to reproduce the problem

For example,
1、When I set target throughput under 30000(500TPS),everything works fine. But when the target throughput is set to 40000(333TPS), the result throughput is still 500TPS.
2、When the target throughput is set between 60000(1000TPS) and 150000(2500TPS),the result throughput is always 1000TPS
3、When the target throughput is set beyond 150000(2500TPS),the result throughput can't be controlled and wiil be a high value just like without Constant Throughput timer enabled

I think this is may be in ConstantThroughputTimer.java
`private static final double MILLISEC_PER_MIN = 60000.0;

double msPerRequest = MILLISEC_PER_MIN / getThroughput();

Math.round(msPerRequest)
`
I guess when the target throughput is set to a big value, the result of Math.round may produce a fixed value, and then the result throughput is a fixed value in different target throughput.

### JMeter Version

5.6.3

### Java Version

_No response_

### OS Version

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.