svn commit: r890526 - in /jakarta/jmeter/trunk: docs/images/screenshots/ src/core/org/apache/jmeter/control/ src/core/org/apache/jmeter/control/gui/ src/core/org/apache/jmeter/resources/ xdocs/ xdocs/images/screenshots/ xdocs/usermanual/

[email protected]
Newsgroups gmane.comp.jakarta.jmeter.devel
Message-ID <[email protected]>
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="&sect-num;.2.15"  width="258" height="125" screenshot="transactioncontroller.png">
+<component name="Transaction Controller" index="&sect-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>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.