Author: sebb
Date: Fri Nov 20 19:08:18 2009
New Revision: 882684

URL: http://svn.apache.org/viewvc?rev=882684&view=rev
Log:
Bug 47946 - Proxy should enable Grouping inside a Transaction Controller

Modified:
    
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
    
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
    
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java
    
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java
    jakarta/jmeter/trunk/xdocs/changes.xml
    jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml

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=882684&r1=882683&r2=882684&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 
Fri Nov 20 19:08:18 2009
@@ -287,6 +287,7 @@
 graph_results_title=Graph Results
 grouping_add_separators=Add separators between groups
 grouping_in_controllers=Put each group in a new controller
+grouping_in_transaction_controllers=Put each group in a new transaction 
controller
 grouping_mode=Grouping\:
 grouping_no_groups=Do not group samplers
 grouping_store_first_only=Store 1st sampler of each group only
@@ -846,6 +847,7 @@
 tr=Turkish
 transaction_controller_parent=Generate parent sample
 transaction_controller_title=Transaction Controller
+transaction_controller_include_timers=Include timer duration in runtime 
summary.
 unbind=Thread Unbind
 unescape_html_string=String to unescape
 unescape_string=String containing Java escapes

Modified: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties?rev=882684&r1=882683&r2=882684&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
 (original)
+++ 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
 Fri Nov 20 19:08:18 2009
@@ -260,6 +260,7 @@
 graph_results_title=Graphique de r\u00E9sultats
 grouping_add_separators=Ajouter des s\u00E9parateurs entre les groupes
 grouping_in_controllers=Mettre chaque groupe dans un nouveau contr\u00F4leur
+grouping_in_transaction_controllers=Mettre chaque groupe dans un nouveau 
contr\u00F4leur de transaction
 grouping_mode=Grouper \:
 grouping_no_groups=Ne pas grouper les \u00E9chantillons
 grouping_store_first_only=Stocker le 1er \u00E9chantillon pour chaque groupe 
uniquement
@@ -718,6 +719,7 @@
 tr=Turc
 transaction_controller_parent=G\u00E9n\u00E9rer en \u00E9chantillon parent
 transaction_controller_title=Contr\u00F4leur Transaction
+transaction_controller_include_timers=Inclure le temps de timer dans la duree.
 unbind=D\u00E9connexion de l'unit\u00E9
 uniform_timer_delay=D\u00E9lai de d\u00E9calage constant (en millisecondes) \:
 uniform_timer_memo=Ajoute un d\u00E9lai al\u00E9atoire avec une distribution 
uniforme

Modified: 
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java?rev=882684&r1=882683&r2=882684&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java
 (original)
+++ 
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java
 Fri Nov 20 19:08:18 2009
@@ -33,7 +33,9 @@
 import org.apache.jmeter.config.ConfigElement;
 import org.apache.jmeter.config.ConfigTestElement;
 import org.apache.jmeter.control.GenericController;
+import org.apache.jmeter.control.TransactionController;
 import org.apache.jmeter.control.gui.LogicControllerGui;
+import org.apache.jmeter.control.gui.TransactionControllerGui;
 import org.apache.jmeter.engine.util.ValueReplacer;
 import org.apache.jmeter.exceptions.IllegalUserActionException;
 import org.apache.jmeter.functions.InvalidVariableException;
@@ -79,6 +81,9 @@
 
     private static final String ASSERTION_GUI = AssertionGui.class.getName();
 
+    
+    private static final String TRANSACTION_CONTROLLER_GUI = 
TransactionControllerGui.class.getName();
+    
     private static final String LOGIC_CONTROLLER_GUI = 
LogicControllerGui.class.getName();
 
     private static final String HEADER_PANEL = HeaderPanel.class.getName();
@@ -125,13 +130,13 @@
     private static final String CONTENT_TYPE_INCLUDE = 
"ProxyControlGui.content_type_include"; // $NON-NLS-1$
     //- JMX file attributes
 
-    public static final int GROUPING_NO_GROUPS = 0;
-
-    public static final int GROUPING_ADD_SEPARATORS = 1;
-
-    public static final int GROUPING_IN_CONTROLLERS = 2;
-
-    public static final int GROUPING_STORE_FIRST_ONLY = 3;
+    // Must agree with the order of entries in the drop-down
+    // created in ProxyControlGui.createGroupingPanel()
+    //private static final int GROUPING_NO_GROUPS = 0;
+    private static final int GROUPING_ADD_SEPARATORS = 1;
+    private static final int GROUPING_IN_SIMPLE_CONTROLLERS = 2;
+    private static final int GROUPING_STORE_FIRST_ONLY = 3;
+    private static final int GROUPING_IN_TRANSACTION_CONTROLLERS = 4;
 
     // Must agree with the order of entries in the drop-down
     // created in ProxyControlGui.createHTTPSamplerPanel()
@@ -547,6 +552,23 @@
     }
 
     /**
+     * Helper method to add a Transaction Controller to contain the samplers.
+     *
+     * @param model
+     *            Test component tree model
+     * @param node
+     *            Node in the tree where we will add the Controller
+     * @param name
+     *            A name for the Controller
+     */
+    private void addTransactionController(JMeterTreeModel model, 
JMeterTreeNode node, String name)
+            throws IllegalUserActionException {
+       TransactionController sc = new TransactionController();
+        sc.setProperty(TestElement.GUI_CLASS, TRANSACTION_CONTROLLER_GUI);
+        sc.setName(name);
+        model.addComponent(sc, node);
+    }
+    /**
      * Helpler method to replicate any timers found within the Proxy Controller
      * into the provided sampler, while replacing any occurences of string _T_
      * in the timer's configuration with the provided deltaT.
@@ -733,9 +755,12 @@
                 if (!myTarget.isLeaf() && groupingMode == 
GROUPING_ADD_SEPARATORS) {
                     addDivider(treeModel, myTarget);
                 }
-                if (groupingMode == GROUPING_IN_CONTROLLERS) {
+                if (groupingMode == GROUPING_IN_SIMPLE_CONTROLLERS) {
                     addSimpleController(treeModel, myTarget, 
sampler.getName());
                 }
+                if (groupingMode == GROUPING_IN_TRANSACTION_CONTROLLERS) {
+                    addTransactionController(treeModel, myTarget, 
sampler.getName());
+                }
                 firstInBatch = true;// Remember this was first in its batch
             }
             if (lastTime == 0) {
@@ -754,7 +779,8 @@
                 sampler.setImageParser(true);
             }
 
-            if (groupingMode == GROUPING_IN_CONTROLLERS) {
+            if (groupingMode == GROUPING_IN_SIMPLE_CONTROLLERS || 
+                       groupingMode == GROUPING_IN_TRANSACTION_CONTROLLERS) {
                 // Find the last controller in the target to store the
                 // sampler there:
                 for (int i = myTarget.getChildCount() - 1; i >= 0; i--) {

Modified: 
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java?rev=882684&r1=882683&r2=882684&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java
 (original)
+++ 
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java
 Fri Nov 20 19:08:18 2009
@@ -621,6 +621,7 @@
         m.addElement(JMeterUtils.getResString("grouping_add_separators")); // 
$NON-NLS-1$
         m.addElement(JMeterUtils.getResString("grouping_in_controllers")); // 
$NON-NLS-1$
         m.addElement(JMeterUtils.getResString("grouping_store_first_only")); 
// $NON-NLS-1$
+        
m.addElement(JMeterUtils.getResString("grouping_in_transaction_controllers")); 
// $NON-NLS-1$
         groupingMode = new JComboBox(m);
         groupingMode.setSelectedIndex(0);
         groupingMode.addItemListener(this);

Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=882684&r1=882683&r2=882684&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Fri Nov 20 19:08:18 2009
@@ -118,6 +118,7 @@
 <li>Allow Proxy Server to be specified on HTTP Sampler GUI and HTTP Config 
GUI</li>
 <li>Bug 47461 - Update Cache Manager to handle Expires HTTP header</li>
 <li>Bug 48153 - Support for Cache-Control and Expires headers</li>
+<li>Bug 47946 - Proxy should enable Grouping inside a Transaction 
Controller</li>
 </ul>
 
 <h3>Other samplers</h3>

Modified: jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml?rev=882684&r1=882683&r2=882684&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml (original)
+++ jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml Fri Nov 20 
19:08:18 2009
@@ -4424,6 +4424,7 @@
              <li>Add separators between groups: add a controller named 
"--------------" to create a visual separation between the groups. Otherwise 
the samplers are all stored sequentially.</li>
              <li>Put each group in a new controller: create a new <complink 
name="Simple Controller"/> for each group, and store all samplers for that 
group in it.</li>
              <li>Store 1st sampler of each group only: only the first request 
in each group will be recorded. The "Follow Redirects" and "Retrieve All 
Embedded Resources..." flags will be turned on in those samplers.</li>
+             <li>Put each group in a new transaction controller: create a new 
<complink name="Transaction Controller"/> for each group, and store all 
samplers for that group in it.</li>
            </ul>
            The property <b>proxy.pause</b> determines the minimum gap that 
JMeter needs between requests
            to treat them as separate "clicks". The default is 1000 
(milliseconds) i.e. 1 second.



---------------------------------------------------------------------
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