Summary: | Throughput controllers should not share global counters | ||
---|---|---|---|
Product: | JMeter - Now in Github | Reporter: | Elliott Jones <elliott_jones> |
Component: | Main | Assignee: | JMeter issues mailing list <issues> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | elliott_jones, milamber |
Priority: | P2 | ||
Version: | 2.3.1 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | Windows Server 2003 | ||
Attachments: | Test Plan to show bug 44941 |
Description
Elliott Jones
2008-05-06 03:47:04 UTC
After analysis, the problem is the element Throughput Controller when there are several in same Thread Group with the option "Per User" unchecked. ==> The problem doesn't exist when option "Per User" is checked. The analysis of source code indicates that scope of variable globalNumExecutions in class org.apache.jmeter.control.ThroughputController which is the cause of problem. Indeed, variable globalNumExecutions is compared to getMaxThroughputAsInt() (in method decide() of the same class), but unfortunately, value of globalNumExecutions is shared by all Throughput Controller of Thread Group. When comparing the number of execution is wrong in relation to the current Throughput Controller. For example, in Test Plan attached, the request "21 HTTP Request" isn't success because the comparison of value of globalNumExecutions is already 1 (because request "11 HTTP Request" is before) and value of Max Throughput is 1 for the current Throughput Controller (1 < 1 = false). The solution should be (I think): A variable globalNumExecutions by Throughput Controller and shared by Thread Group. By cons, I have not (yet) succeeded to correct in the source code Jmeter ... Perhaps this is not possible? Created attachment 22534 [details] Test Plan to show bug 44941 URL: http://svn.apache.org/viewvc?rev=712458&view=rev Log: Bug 44941 - Throughput controllers should not share global counters This issue has been migrated to GitHub: https://github.com/apache/jmeter/issues/2107 |