Hi Antonio, Thanks for fixing this. Find 1 remark below. Regards
On Sat, Nov 11, 2017 at 9:49 PM, <ago...@apache.org> wrote: > 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); > I think you should rename this variable to follow instance variable naming convention. Thank you + 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/> > > > -- Cordialement. Philippe Mouawad.