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>
 



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscr...@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-h...@jakarta.apache.org

Reply via email to