Author: sebb Date: Mon Dec 14 22:52:28 2009 New Revision: 890526 URL: http://svn.apache.org/viewvc?rev=890526&view=rev Log: Bug 41418 - Exclude timer duration from Transaction Controller runtime in report
Modified: jakarta/jmeter/trunk/docs/images/screenshots/transactioncontroller.png jakarta/jmeter/trunk/src/core/org/apache/jmeter/control/TransactionController.java jakarta/jmeter/trunk/src/core/org/apache/jmeter/control/gui/TransactionControllerGui.java jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties jakarta/jmeter/trunk/xdocs/changes.xml jakarta/jmeter/trunk/xdocs/images/screenshots/transactioncontroller.png jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml Modified: jakarta/jmeter/trunk/docs/images/screenshots/transactioncontroller.png URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/docs/images/screenshots/transactioncontroller.png?rev=890526&r1=890525&r2=890526&view=diff ============================================================================== Binary files - no diff available. Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/control/TransactionController.java URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/control/TransactionController.java?rev=890526&r1=890525&r2=890526&view=diff ============================================================================== --- jakarta/jmeter/trunk/src/core/org/apache/jmeter/control/TransactionController.java (original) +++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/control/TransactionController.java Mon Dec 14 22:52:28 2009 @@ -56,8 +56,20 @@ private transient int noFailingSamples; + /** + * Cumulated pause time to excluse timer and post/pre processor times + */ + private transient long pauseTime; + + /** + * Previous end time + */ + private transient long prevEndTime; + private static final String PARENT = "TransactionController.parent";// $NON-NLS-1$ + private final static String INCLUDE_TIMERS = "TransactionController.includeTimers";// $NON-NLS-1$ + /** * Creates a Transaction Controller */ @@ -152,6 +164,8 @@ // Assume success res.setSuccessful(true); res.sampleStart(); + prevEndTime = res.getStartTime();//??? + pauseTime = 0; } Sampler returnValue = super.next(); @@ -159,7 +173,8 @@ if (returnValue == null) // Must be the end of the controller { if (res != null) { - res.sampleEnd(); + res.setIdleTime(pauseTime+res.getIdleTime()); + res.sampleEnd(); res.setResponseMessage("Number of samples in transaction : " + calls + ", number of failing samples : " + noFailingSamples); if(res.isSuccessful()) { res.setResponseCodeOK(); @@ -196,6 +211,10 @@ SampleResult sampleResult = se.getResult(); res.setThreadName(sampleResult.getThreadName()); res.setBytes(res.getBytes() + sampleResult.getBytes()); + if (!isIncludeTimers()) {// Accumulate waiting time for later + pauseTime += sampleResult.getEndTime() - sampleResult.getTime() - prevEndTime; + prevEndTime = sampleResult.getEndTime(); + } if(!sampleResult.isSuccessful()) { res.setSuccessful(false); noFailingSamples++; @@ -212,4 +231,22 @@ public void sampleStopped(SampleEvent e) { } + + /** + * Whether to include timers and pre/post processor time in overall sample. + * @param includeTimers + */ + public void setIncludeTimers(boolean includeTimers) { + setProperty(INCLUDE_TIMERS, includeTimers, true); // default true for compatibility + } + + /** + * Whether to include timer and pre/post processor time in overall sample. + * + * @return boolean (defaults to true for backwards compatibility) + */ + public boolean isIncludeTimers() { + return getPropertyAsBoolean(INCLUDE_TIMERS, true); + } + } Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/control/gui/TransactionControllerGui.java URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/control/gui/TransactionControllerGui.java?rev=890526&r1=890525&r2=890526&view=diff ============================================================================== --- jakarta/jmeter/trunk/src/core/org/apache/jmeter/control/gui/TransactionControllerGui.java (original) +++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/control/gui/TransactionControllerGui.java Mon Dec 14 22:52:28 2009 @@ -32,6 +32,8 @@ public class TransactionControllerGui extends AbstractControllerGui { private JCheckBox parent; // If selected, then generate parent sample, otherwise as per original controller + + private JCheckBox includeTimers; // if selected, add duration of timers to total runtime /** * Create a new TransactionControllerGui instance. @@ -51,12 +53,16 @@ public void configure(TestElement el) { super.configure(el); parent.setSelected(((TransactionController) el).isParent()); + includeTimers.setSelected(((TransactionController) el).isIncludeTimers()); } /* Implements JMeterGUIComponent.modifyTestElement(TestElement) */ public void modifyTestElement(TestElement el) { configureTestElement(el); ((TransactionController) el).setParent(parent.isSelected()); + TransactionController tc = ((TransactionController) el); + tc.setParent(parent.isSelected()); + tc.setIncludeTimers(includeTimers.isSelected()); } public String getLabelResource() { @@ -72,5 +78,7 @@ add(makeTitlePanel()); parent = new JCheckBox(JMeterUtils.getResString("transaction_controller_parent")); // $NON-NLS-1$ add(parent); + includeTimers = new JCheckBox(JMeterUtils.getResString("transaction_controller_include_timers"), true); // $NON-NLS-1$ + add(includeTimers); } } Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties?rev=890526&r1=890525&r2=890526&view=diff ============================================================================== --- jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties (original) +++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties Mon Dec 14 22:52:28 2009 @@ -853,7 +853,7 @@ tr=Turkish transaction_controller_parent=Generate parent sample transaction_controller_title=Transaction Controller -transaction_controller_include_timers=Include timer duration in runtime summary. +transaction_controller_include_timers=Include timer duration in generated sample unbind=Thread Unbind unescape_html_string=String to unescape unescape_string=String containing Java escapes Modified: jakarta/jmeter/trunk/xdocs/changes.xml URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=890526&r1=890525&r2=890526&view=diff ============================================================================== --- jakarta/jmeter/trunk/xdocs/changes.xml (original) +++ jakarta/jmeter/trunk/xdocs/changes.xml Mon Dec 14 22:52:28 2009 @@ -140,6 +140,7 @@ <h3>Controllers</h3> <ul> <li>Bug 47909 - TransactionController should sum the latency</li> +<li>Bug 41418 - Exclude timer duration from Transaction Controller runtime in report</li> </ul> <h3>Listeners</h3> Modified: jakarta/jmeter/trunk/xdocs/images/screenshots/transactioncontroller.png URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/images/screenshots/transactioncontroller.png?rev=890526&r1=890525&r2=890526&view=diff ============================================================================== Binary files - no diff available. Modified: jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml?rev=890526&r1=890525&r2=890526&view=diff ============================================================================== --- jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml (original) +++ jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml Mon Dec 14 22:52:28 2009 @@ -1844,7 +1844,7 @@ </properties> </component> -<component name="Transaction Controller" index="§-num;.2.15" width="258" height="125" screenshot="transactioncontroller.png"> +<component name="Transaction Controller" index="§-num;.2.15" width="288" height="155" screenshot="transactioncontroller.png"> <description> <p> The Transaction Controller generates an additional @@ -1885,6 +1885,10 @@ If checked, then the sample is generated as a parent of the other samples, otherwise the sample is generated as an independent sample. </property> + <property name="Include timer duration in generated sample" required="Yes"> + Whether to include timer, pre- and post-processing delays in the generated sample. + Default is true to be compatible with the behaviour in previous versions of JMeter. + </property> </properties> </component> --------------------------------------------------------------------- To unsubscribe, e-mail: jmeter-dev-unsubscr...@jakarta.apache.org For additional commands, e-mail: jmeter-dev-h...@jakarta.apache.org