Author: agomes
Date: Sat Nov 11 20:49:03 2017
New Revision: 1814971

URL: http://svn.apache.org/viewvc?rev=1814971&view=rev
Log:
Bug 61672 - add tht choice between prefix and transaction name to name sampler 
during recording

Modified:
    jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
    jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
    
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/DefaultSamplerCreator.java
    
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/HttpRequestHdr.java
    
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/Proxy.java
    
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java
    
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java
    jmeter/trunk/xdocs/changes.xml
    jmeter/trunk/xdocs/images/screenshots/proxy_control.png
    jmeter/trunk/xdocs/usermanual/component_reference.xml

Modified: jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties?rev=1814971&r1=1814970&r2=1814971&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties 
(original)
+++ jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties Sat 
Nov 11 20:49:03 2017
@@ -787,7 +787,6 @@ proxy_general_lifecycle=State
 proxy_general_settings=Global Settings
 proxy_headers=Capture HTTP Headers
 proxy_pause_http_sampler=Create new transaction after request (ms)\:
-proxy_prefix_http_sampler_name=Prefix\:
 proxy_regex=Regex matching
 proxy_sampler_settings=HTTP Sampler settings
 proxy_sampler_type=Type\:
@@ -936,6 +935,8 @@ run_threadgroup_no_timers=Start no pause
 running_test=Running test
 runtime_controller_title=Runtime Controller
 runtime_seconds=Runtime (seconds)
+sample_name_prefix=Prefix
+sample_name_transaction=Transaction name
 salt_string=Salt to be used for hashing (optional)
 sample_result_save_configuration=Sample Result Save Configuration
 sample_scope=Apply to:

Modified: 
jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties?rev=1814971&r1=1814970&r2=1814971&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties 
(original)
+++ jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties 
Sat Nov 11 20:49:03 2017
@@ -777,7 +777,6 @@ proxy_general_lifecycle=Etat
 proxy_general_settings=Param\u00E8tres g\u00E9n\u00E9raux
 proxy_headers=Capturer les ent\u00EAtes HTTP
 proxy_pause_http_sampler=Cr\u00E9er une nouvelle transaction apr\u00E8s la 
requ\u00EAte (ms) \:
-proxy_prefix_http_sampler_name=Pr\u00E9fixe \:
 proxy_regex=Correspondance des variables par regex ?
 proxy_sampler_settings=Param\u00E8tres Echantillon HTTP
 proxy_sampler_type=Type \:
@@ -926,6 +925,8 @@ run_threadgroup_no_timers=Lancer sans pa
 running_test=Lancer test
 runtime_controller_title=Contr\u00F4leur Dur\u00E9e d'ex\u00E9cution
 runtime_seconds=Temps d'ex\u00E9cution (secondes) \:
+sample_name_prefix=Pr\u00E9fixe
+sample_name_transaction=Nom de la transaction
 salt_string=Sel \u00e0 utiliser pour le hash
 sample_result_save_configuration=Sauvegarder la configuration de la sauvegarde 
des \u00E9chantillons
 sample_scope=Appliquer sur

Modified: 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/DefaultSamplerCreator.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/DefaultSamplerCreator.java?rev=1814971&r1=1814970&r2=1814971&view=diff
==============================================================================
--- 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/DefaultSamplerCreator.java
 (original)
+++ 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/DefaultSamplerCreator.java
 Sat Nov 11 20:49:03 2017
@@ -54,6 +54,12 @@ import org.xml.sax.helpers.DefaultHandle
  */
 public class DefaultSamplerCreator extends AbstractSamplerCreator {
     private static final Logger log = 
LoggerFactory.getLogger(DefaultSamplerCreator.class);
+    
+    /*
+    * Must be the same order than in 
org.apache.jmeter.protocol.http.proxy.gui.ProxyControlGui class in 
createHTTPSamplerPanel method
+    */
+    private static final int SAMPLER_NAME_NAMING_MODE_PREFIX = 0;  // 
$NON-NLS-1$
+    private static final int SAMPLER_NAME_NAMING_MODE_COMPLETE = 1;  // 
$NON-NLS-1$
  
     /**
      * 
@@ -275,15 +281,28 @@ public class DefaultSamplerCreator exten
     protected void computeSamplerName(HTTPSamplerBase sampler,
             HttpRequestHdr request) {
         String prefix = request.getPrefix();
+        int HttpSampleNameMode = request.getHttpSampleNameMode();
         if (!HTTPConstants.CONNECT.equals(request.getMethod()) && 
isNumberRequests()) {
             if(!StringUtils.isEmpty(prefix)) {
-                sampler.setName(incrementRequestNumberAndGet() + " " + prefix);
+                if (HttpSampleNameMode==SAMPLER_NAME_NAMING_MODE_PREFIX) {
+                sampler.setName(prefix + incrementRequestNumberAndGet() + " " 
+ sampler.getPath());
+                } else if 
(HttpSampleNameMode==SAMPLER_NAME_NAMING_MODE_COMPLETE) {
+                    sampler.setName(incrementRequestNumberAndGet() + " " + 
prefix);
+                } else {
+                    log.debug("Sampler name naming mode not recognized");
+                }
             } else {
                 sampler.setName(incrementRequestNumberAndGet() + " " + 
sampler.getPath());
             }
         } else {
             if(!StringUtils.isEmpty(prefix)) {
-                sampler.setName(prefix);
+                if (HttpSampleNameMode==SAMPLER_NAME_NAMING_MODE_PREFIX) {
+                    sampler.setName(prefix+sampler.getPath());
+                } else if 
(HttpSampleNameMode==SAMPLER_NAME_NAMING_MODE_COMPLETE) {
+                    sampler.setName(prefix);
+                } else {
+                    log.debug("Sampler name naming mode not recognized");
+                }
             } else {
                 sampler.setName(sampler.getPath());
             }

Modified: 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/HttpRequestHdr.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/HttpRequestHdr.java?rev=1814971&r1=1814970&r2=1814971&view=diff
==============================================================================
--- 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/HttpRequestHdr.java
 (original)
+++ 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/HttpRequestHdr.java
 Sat Nov 11 20:49:03 2017
@@ -88,6 +88,8 @@ public class HttpRequestHdr {
     private String firstLine; // saved copy of first line for error reports
 
     private String prefix;
+    
+    private int httpSampleNameMode;
 
     public HttpRequestHdr() {
         this("", "");
@@ -105,12 +107,22 @@ public class HttpRequestHdr {
      * @param httpSamplerName the http sampler name
      */
     public HttpRequestHdr(String prefix, String httpSamplerName) {
-        this.prefix = prefix;
-        this.httpSamplerName = httpSamplerName;
-        this.firstLine = "" ; // $NON-NLS-1$
+       this(prefix, httpSamplerName,0);
     }
 
     /**
+     * @param prefix Sampler prefix
+     * @param httpSamplerName the http sampler name
+     * @param httpSampleNameMode the naming mode of sampler name
+     */
+    public HttpRequestHdr(String prefix, String httpSamplerName, int 
httpSampleNameMode) {
+               this.prefix = prefix;
+        this.httpSamplerName = httpSamplerName;
+        this.firstLine = "" ; // $NON-NLS-1$
+        this.httpSampleNameMode = httpSampleNameMode;
+       }
+
+       /**
      * Parses a http header from a stream.
      *
      * @param in
@@ -457,4 +469,11 @@ public class HttpRequestHdr {
     public String getPrefix() {
         return prefix;
     }
+    
+    /**
+     * @return the httpSampleNameMode
+     */
+    public int getHttpSampleNameMode() {
+        return httpSampleNameMode;
+    }
 }

Modified: 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/Proxy.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/Proxy.java?rev=1814971&r1=1814970&r2=1814971&view=diff
==============================================================================
--- 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/Proxy.java 
(original)
+++ 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/Proxy.java 
Sat Nov 11 20:49:03 2017
@@ -161,8 +161,8 @@ public class Proxy extends Thread {
     public void run() {
         // Check which HTTPSampler class we should use
         String httpSamplerName = target.getSamplerTypeName();
-
-        HttpRequestHdr request = new 
HttpRequestHdr(target.getPrefixHTTPSampleName(), httpSamplerName);
+        
+        HttpRequestHdr request = new 
HttpRequestHdr(target.getPrefixHTTPSampleName(), 
httpSamplerName,target.getHTTPSampleNamingMode());
         SampleResult result = null;
         HeaderManager headers = null;
         HTTPSamplerBase sampler = null;

Modified: 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java?rev=1814971&r1=1814970&r2=1814971&view=diff
==============================================================================
--- 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java
 (original)
+++ 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java
 Sat Nov 11 20:49:03 2017
@@ -156,6 +156,8 @@ public class ProxyControl extends Generi
 
     private static final String SAMPLER_DOWNLOAD_IMAGES = 
"ProxyControlGui.sampler_download_images"; // $NON-NLS-1$
     
+    private static final String HTTP_SAMPLER_NAMING_MODE = 
"ProxyControlGui.proxy_http_sampler_naming_mode"; // $NON-NLS-1$
+    
     private static final String PREFIX_HTTP_SAMPLER_NAME = 
"ProxyControlGui.proxy_prefix_http_sampler_name"; // $NON-NLS-1$
     
     private static final String PROXY_PAUSE_HTTP_SAMPLER = 
"ProxyControlGui.proxy_pause_http_sampler"; // $NON-NLS-1$
@@ -181,6 +183,7 @@ public class ProxyControl extends Generi
     private static final int GROUPING_STORE_FIRST_ONLY = 3;
     private static final int GROUPING_IN_TRANSACTION_CONTROLLERS = 4;
 
+    
     // Original numeric order (we now use strings)
     private static final String SAMPLER_TYPE_HTTP_SAMPLER_JAVA = "0";
     private static final String SAMPLER_TYPE_HTTP_SAMPLER_HC3_1 = "1";
@@ -389,6 +392,10 @@ public class ProxyControl extends Generi
         setProperty(new BooleanProperty(SAMPLER_DOWNLOAD_IMAGES, b));
     }
 
+    public void setHTTPSampleNamingMode(int HTTPNamingMode) {
+        setProperty(new IntegerProperty(HTTP_SAMPLER_NAMING_MODE, 
HTTPNamingMode));
+    }
+    
     public void setPrefixHTTPSampleName(String prefixHTTPSampleName) {
         setProperty(PREFIX_HTTP_SAMPLER_NAME, prefixHTTPSampleName);
     }
@@ -479,6 +486,10 @@ public class ProxyControl extends Generi
         return getPropertyAsBoolean(SAMPLER_DOWNLOAD_IMAGES, false);
     }
 
+    public int getHTTPSampleNamingMode() {
+        return getPropertyAsInt(HTTP_SAMPLER_NAMING_MODE);
+    }
+    
     public String getPrefixHTTPSampleName() {
         return getPropertyAsString(PREFIX_HTTP_SAMPLER_NAME);
     }

Modified: 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java?rev=1814971&r1=1814970&r2=1814971&view=diff
==============================================================================
--- 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java
 (original)
+++ 
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java
 Sat Nov 11 20:49:03 2017
@@ -157,7 +157,12 @@ public class ProxyControlGui extends Log
     private JCheckBox samplerDownloadImages;
 
     /**
-     * Add a prefix to HTTP sample name recorded
+     * To choose between a prefix or a transaction name
+     */
+    private JComboBox<String> HTTPSampleNamingMode;
+    
+    /**
+     * Add a prefix/transaction name to HTTP sample name recorded
      */
     private JTextField prefixHTTPSampleName;
     
@@ -227,6 +232,8 @@ public class ProxyControlGui extends Log
     private static final String ADD_TO_EXCLUDE_FROM_CLIPBOARD = 
"exclude_clipboard"; // $NON-NLS-1$
 
     private static final String ADD_SUGGESTED_EXCLUDES = "exclude_suggested";
+    
+    private static final String HTTP_SAMPLER_NAMING_MODE = 
"proxy_http_sampler_naming_mode"; // $NON-NLS-1$
 
     private static final String PREFIX_HTTP_SAMPLER_NAME = 
"proxy_prefix_http_sampler_name"; // $NON-NLS-1$
 
@@ -284,6 +291,7 @@ public class ProxyControlGui extends Log
             
model.setSamplerFollowRedirects(samplerFollowRedirects.isSelected());
             model.setUseKeepAlive(useKeepAlive.isSelected());
             model.setSamplerDownloadImages(samplerDownloadImages.isSelected());
+            
model.setHTTPSampleNamingMode(HTTPSampleNamingMode.getSelectedIndex());
             model.setPrefixHTTPSampleName(prefixHTTPSampleName.getText());
             model.setProxyPauseHTTPSample(proxyPauseHTTPSample.getText());
             
model.setNotifyChildSamplerListenerOfFilteredSamplers(notifyChildSamplerListenerOfFilteredSamplersCB.isSelected());
@@ -346,6 +354,7 @@ public class ProxyControlGui extends Log
         samplerFollowRedirects.setSelected(model.getSamplerFollowRedirects());
         useKeepAlive.setSelected(model.getUseKeepalive());
         samplerDownloadImages.setSelected(model.getSamplerDownloadImages());
+        HTTPSampleNamingMode.setSelectedIndex(model.getHTTPSampleNamingMode());
         prefixHTTPSampleName.setText(model.getPrefixHTTPSampleName());
         proxyPauseHTTPSample.setText(model.getProxyPauseHTTPSample());
         
notifyChildSamplerListenerOfFilteredSamplersCB.setSelected(model.getNotifyChildSamplerListenerOfFilteredSamplers());
@@ -375,10 +384,18 @@ public class ProxyControlGui extends Log
      * Also handles samplerTypeName
      */
     /** {@inheritDoc} */
-    @Override
-    public void itemStateChanged(ItemEvent e) {
-        enableRestart();
-    }
+       @Override
+       public void itemStateChanged(ItemEvent e) {
+               if (e.getSource() instanceof JComboBox) {
+                         JComboBox combo = (JComboBox) e.getSource();
+                          if(HTTP_SAMPLER_NAMING_MODE.equals(combo.getName())){
+                                       
model.setHTTPSampleNamingMode(HTTPSampleNamingMode.getSelectedIndex());
+                          }
+                       }
+               else {
+                       enableRestart();
+               }
+       }
 
     /** {@inheritDoc} */
     @Override
@@ -834,12 +851,16 @@ public class ProxyControlGui extends Log
         samplerDownloadImages.addActionListener(this);
         samplerDownloadImages.setActionCommand(ENABLE_RESTART);
 
+        DefaultComboBoxModel<String> choice = new DefaultComboBoxModel<>();
+        choice.addElement(JMeterUtils.getResString("sample_name_prefix")); // 
$NON-NLS-1$
+        
choice.addElement(JMeterUtils.getResString("sample_name_transaction")); // 
$NON-NLS-1$
+        HTTPSampleNamingMode = new JComboBox<>(choice);
+        HTTPSampleNamingMode.setName(HTTP_SAMPLER_NAMING_MODE);
+        HTTPSampleNamingMode.addItemListener(this);
+        
         prefixHTTPSampleName = new JTextField(4);
         prefixHTTPSampleName.addKeyListener(this);
         prefixHTTPSampleName.setName(PREFIX_HTTP_SAMPLER_NAME);
-        prefixHTTPSampleName.setActionCommand(ENABLE_RESTART);
-        JLabel labelPrefix = new 
JLabel(JMeterUtils.getResString("proxy_prefix_http_sampler_name")); // 
$NON-NLS-1$
-        labelPrefix.setLabelFor(prefixHTTPSampleName);
 
         proxyPauseHTTPSample = new JTextField(6);
         proxyPauseHTTPSample.addKeyListener(this);
@@ -853,7 +874,7 @@ public class ProxyControlGui extends Log
               
         GridBagLayout gridBagLayout = new GridBagLayout();
         GridBagConstraints gbc = new GridBagConstraints();
-        gbc.anchor = GridBagConstraints.NORTHWEST;
+        gbc.anchor = GridBagConstraints.FIRST_LINE_START;
         gbc.fill = GridBagConstraints.NONE;
         gbc.gridheight = 1;
         gbc.gridwidth = 1;
@@ -864,7 +885,7 @@ public class ProxyControlGui extends Log
         JPanel panel = new JPanel(gridBagLayout);
         
panel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),
                 JMeterUtils.getResString("proxy_sampler_settings"))); // 
$NON-NLS-1$
-        panel.add(labelPrefix, gbc.clone());
+        panel.add(HTTPSampleNamingMode, gbc.clone());
         gbc.gridx++;
         gbc.weightx = 3;
         gbc.fill=GridBagConstraints.HORIZONTAL;

Modified: jmeter/trunk/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1814971&r1=1814970&r2=1814971&view=diff
==============================================================================
--- jmeter/trunk/xdocs/changes.xml [utf-8] (original)
+++ jmeter/trunk/xdocs/changes.xml [utf-8] Sat Nov 11 20:49:03 2017
@@ -90,7 +90,7 @@ Summary
 <ul>
     <li><pr>316</pr>Warn about empty truststore loading. Contributed by 
Vincent Herilier (https://github.com/vherilier)</li>
     <li><bug>61639</bug>HTTP(S) Test Script Recorder : In request filtering 
tab, uncheck by default "Notify Child Listeners of filtered samplers"</li>
-    <li><bug>61672</bug>HTTP(S) Test Script Recorder : When a prefix is set 
don't use path in Sampler Name</li>
+    <li><bug>61672</bug>HTTP(S) Test Script Recorder : Have the ability to 
choose the sampler name while keeping the ability to just add a prefix</li>
     <li><bug>53957</bug>HTTP Request : In Parameters tab, allow pasting of 
content coming from Firefox and Chrome (unparsed)</li>
     <li><bug>61587</bug>Drop properties 
<code>sampleresult.getbytes.headers_size</code> and 
<code>sampleresult.getbytes.body_real_size</code></li>
 </ul>

Modified: jmeter/trunk/xdocs/images/screenshots/proxy_control.png
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/xdocs/images/screenshots/proxy_control.png?rev=1814971&r1=1814970&r2=1814971&view=diff
==============================================================================
Binary files - no diff available.

Modified: jmeter/trunk/xdocs/usermanual/component_reference.xml
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/xdocs/usermanual/component_reference.xml?rev=1814971&r1=1814970&r2=1814971&view=diff
==============================================================================
--- jmeter/trunk/xdocs/usermanual/component_reference.xml (original)
+++ jmeter/trunk/xdocs/usermanual/component_reference.xml Sat Nov 11 20:49:03 
2017
@@ -6646,6 +6646,7 @@ Both Chrome and Internet Explorer use th
         </property>
         <property name="Add Assertions" required="Yes">Add a blank assertion 
to each sampler?</property>
         <property name="Regex Matching" required="Yes">Use Regex Matching when 
replacing variables? If checked replacement will use word boundaries, i.e. it 
will only replace word matching values of variable, not part of a word. A word 
boundary follows Perl5 definition and is equivalent to <code>\b</code>. More 
information below in the paragraph about "<code>User Defined Variable 
replacement</code>".</property>
+        <property name="Prefix/Transaction name" required="No">Add a prefix to 
sampler name during recording (Prefix mode). Or replace sampler name by user 
choosen name (Transaction name)</property>
         <property name="Type" required="Yes">Which type of sampler to generate 
(the HTTPClient default or Java)</property>
         <property name="Redirect Automatically" required="Yes">Set Redirect 
Automatically in the generated samplers?</property>
         <property name="Follow Redirects" required="Yes">Set Follow Redirects 
in the generated samplers?<br/>


Reply via email to