jmeter-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ago...@apache.org
Subject svn commit: r1814971 - in /jmeter/trunk: src/core/org/apache/jmeter/resources/ src/protocol/http/org/apache/jmeter/protocol/http/proxy/ src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ xdocs/ xdocs/images/screenshots/ xdocs/usermanual/
Date Sat, 11 Nov 2017 20:49:03 GMT
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/>



Mime
View raw message