Summary: | Excludes timer duration from Transaction Controller runtime in report | ||
---|---|---|---|
Product: | JMeter - Now in Github | Reporter: | Holger Isenberg <isenberg> |
Component: | Main | Assignee: | JMeter issues mailing list <issues> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | benoit.wiart, jens_0, p.mouawad |
Priority: | P2 | ||
Version: | 2.3 | ||
Target Milestone: | --- | ||
Hardware: | All | ||
OS: | All | ||
Attachments: |
adds checkbox to Transaction Controller to exclude timer durations
missing part 2 of patch above Suggested patch Simple testplan to show that timer is included Updated patch against current svn version (2.3 r575019) Updated patch against trunk of 6/10/2009 Patch to trunk (22/11/2009 21h39) |
Description
Holger Isenberg
2007-01-19 09:40:48 UTC
Created attachment 19435 [details]
adds checkbox to Transaction Controller to exclude timer durations
Seems to be a bit missing - The method incIdleTime() is not defined for SampleResult Created attachment 19436 [details]
missing part 2 of patch above
Created attachment 20430 [details]
Suggested patch
This suggested patch adds a jmeter.properties option to control how the
duration o f the TransactionSample is made. I do not have time to add an GUI
option at the moment, and I'm guessing that a property to control the behaviour
should be sufficient short term.
Currently, the TransactionSample will have the start of the first subsample as
it's start time, and the end of the last subsample of the transaction as it's
end times. This means that the time it takes to run pre-, postprocessors,
assertions and timers inside a TransactionController will be included in the
duration of the transaction sample.
With this patch, and the jmeter.properties option set to true, the transaction
sample will report the sum of the subsamples as it's duration. This will then
not include the time for pre-, postprocessors, timers and assertions.
Created attachment 20431 [details]
Simple testplan to show that timer is included
The attached testplan shows that both timers are included in the duration of
the transaction sample.
So to correct my statement above slightly : by default, the end timestamp of
the transaction sample is set to the timestamp when the transaction controller
figures out that there are no more subsamples to sample in the transaction, and
not to the end time of the last subsample, as I said in my previous comment.
Created attachment 20819 [details] Updated patch against current svn version (2.3 r575019) This is an updated version of my patch against the current svn version 2.3 r575019 Hello, I find this enhancement very useful. Attached is the updated patch of Alf Hogemark done against current trunk. I just changed default value of "Include timer duration in runtime summary" to true to ensure ascending compatibility and commented some code. I also tested it successfully. Philippe http://www.ubik-ingenierie.com Created attachment 24351 [details]
Updated patch against trunk of 6/10/2009
I tested this feature in last load tests campaign. Found no bugs and it is really very useful. A good enhancement would be to remove TestAction times. Philippe. I've been looking at the patch dated 2009-10-06 11:17 UTC. [Not all that easy to follow, as there are lots and lots of spurious white-space changes in the SampleResult part. Please try to submit minimum necessary changes in future.] There is one part of the patch I don't understand: TransactionController.java ... @@ -152,6 +164,8 @@ // Assume success res.setSuccessful(true); res.sampleStart(); + prevEndTime = res.getStartTime(); + pauseTime = 0; } It does not seem correct to use the StartTime as the initial value for the previous End Time. Is the patch correct - if so why? If not, what should it be? Hello, First thanks for taking into account this patch and other ones I submitted. I am sorry for the patch with lot of spaces, you are right, it s hard to read. Now about your question, here is the concept of the patch as I understood it (originial writer is Alf Hogemark): - pauseTime cumulates time taken by all transaction timers and this is done by recording "previous end time" of a Sample. So prevEndTime is used only to compute timer(s) time between samples. pauseTime for each sample is computed by doing (sample endTime - Time taken by sample) (which would be the sample start time) - previous sample EndTime in same transaction. Do you see a pb in this ? Thanks Philippe. Created attachment 24584 [details]
Patch to trunk (22/11/2009 21h39)
Cleaned up patch
Thanks for the patch; it seems to work fine. Patch committed to SVN: URL: http://svn.apache.org/viewvc?rev=890526&view=rev Log: Bug 41418 - Exclude timer duration from Transaction Controller runtime in report Excluding timer duration does not work if the transaction controller's option "Generate parent sample" is on. See Bug 50080 This issue has been migrated to GitHub: https://github.com/apache/jmeter/issues/1851 |