You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by pm...@apache.org on 2019/05/14 13:14:11 UTC
svn commit: r1859230 - in /jmeter/trunk: src/core/org/apache/jmeter/samplers/
src/protocol/http/org/apache/jmeter/protocol/http/sampler/
test/src/org/apache/jmeter/protocol/http/sampler/ xdocs/
Author: pmouawad
Date: Tue May 14 13:14:11 2019
New Revision: 1859230
URL: http://svn.apache.org/viewvc?rev=1859230&view=rev
Log:
Bug 63364 - When setting "subresults.disable_renaming=true", sub results are still renamed using their parent SampleLabel while they shouldn't
Bugzilla Id: 63364
Added:
jmeter/trunk/test/src/org/apache/jmeter/protocol/http/sampler/SamplingNamingTest.java (with props)
Modified:
jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleResult.java
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPAbstractImpl.java
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPJavaImpl.java
jmeter/trunk/xdocs/changes.xml
Modified: jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleResult.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleResult.java?rev=1859230&r1=1859229&r2=1859230&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleResult.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleResult.java Tue May 14 13:14:11 2019
@@ -624,7 +624,7 @@ public class SampleResult implements Ser
* see https://bz.apache.org/bugzilla/show_bug.cgi?id=63055
* @return true if TestPlan is in functional mode or property subresults.disable_renaming is true
*/
- protected final boolean isRenameSampleLabel() {
+ public static final boolean isRenameSampleLabel() {
return !(TestPlan.getFunctionalMode() || DISABLE_SUBRESULTS_RENAMING);
}
Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPAbstractImpl.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPAbstractImpl.java?rev=1859230&r1=1859229&r2=1859230&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPAbstractImpl.java (original)
+++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPAbstractImpl.java Tue May 14 13:14:11 2019
@@ -602,4 +602,12 @@ public abstract class HTTPAbstractImpl i
throw new IllegalStateException("Unknown CACHED_RESOURCE_MODE");
}
}
+
+ protected final void configureSampleLabel(SampleResult res, URL url) {
+ if (SampleResult.isRenameSampleLabel()) {
+ res.setSampleLabel(this.testElement.getName());
+ } else {
+ res.setSampleLabel(url.toString());
+ }
+ }
}
Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java?rev=1859230&r1=1859229&r2=1859230&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java (original)
+++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java Tue May 14 13:14:11 2019
@@ -806,7 +806,7 @@ public class HTTPHC4Impl extends HTTPHCA
protected HTTPSampleResult createSampleResult(URL url, String method) {
HTTPSampleResult res = new HTTPSampleResult();
- res.setSampleLabel(this.testElement.getName());
+ configureSampleLabel(res, url);
res.setHTTPMethod(method);
res.setURL(url);
Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPJavaImpl.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPJavaImpl.java?rev=1859230&r1=1859229&r2=1859230&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPJavaImpl.java (original)
+++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPJavaImpl.java Tue May 14 13:14:11 2019
@@ -511,8 +511,7 @@ public class HTTPJavaImpl extends HTTPAb
}
HTTPSampleResult res = new HTTPSampleResult();
-
- res.setSampleLabel(this.testElement.getName());
+ configureSampleLabel(res, url);
res.setURL(url);
res.setHTTPMethod(method);
Added: jmeter/trunk/test/src/org/apache/jmeter/protocol/http/sampler/SamplingNamingTest.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/protocol/http/sampler/SamplingNamingTest.java?rev=1859230&view=auto
==============================================================================
--- jmeter/trunk/test/src/org/apache/jmeter/protocol/http/sampler/SamplingNamingTest.java (added)
+++ jmeter/trunk/test/src/org/apache/jmeter/protocol/http/sampler/SamplingNamingTest.java Tue May 14 13:14:11 2019
@@ -0,0 +1,92 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.jmeter.protocol.http.sampler;
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.jmeter.junit.JMeterTestCase;
+import org.apache.jmeter.samplers.SampleResult;
+import org.apache.jmeter.testelement.TestPlan;
+import org.apache.jorphan.test.JMeterSerialTest;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+
+@RunWith(Parameterized.class)
+public class SamplingNamingTest extends JMeterTestCase implements JMeterSerialTest {
+ private static final String JMETER_HOME_PAGE = "https://jmeter.apache.org";
+ private static final String LABEL = "JMeter-HP";
+ private String implementation;
+
+ public SamplingNamingTest(String implementation) {
+ this.implementation = implementation;
+ }
+
+ @Parameters(name = "Run {index}: implementation:{0}")
+ public static final String[] getImplementations() {
+ return new String[]{
+ HTTPSamplerFactory.IMPL_HTTP_CLIENT4,
+ HTTPSamplerFactory.IMPL_JAVA};
+ }
+
+ @Test
+ @Parameters(name = "getImplementations")
+ public void testBug63364() {
+ TestPlan plan = new TestPlan();
+ SampleResult[] subResults = doSample(implementation);
+ Assert.assertTrue("We have at least one sample result",subResults.length>0);
+ for (int i = 0; i < subResults.length; i++) {
+ assertEquals(LABEL+"-"+i, subResults[i].getSampleLabel());
+ }
+ final boolean prevValue = TestPlan.getFunctionalMode();
+ plan.setFunctionalMode(true);
+ try {
+ subResults = doSample(implementation);
+ Assert.assertTrue("We have at least one sample result",subResults.length>0);
+ for (int i = 0; i < subResults.length; i++) {
+ Assert.assertTrue(subResults[i].getSampleLabel().startsWith(JMETER_HOME_PAGE));
+ }
+ } finally {
+ plan.setFunctionalMode(prevValue);
+ }
+ }
+
+
+ /**
+ * @param implementation HTTP implementation
+ * @return array of {@link SampleResult}
+ */
+ private SampleResult[] doSample(String implementation) {
+ HTTPSamplerProxy httpSamplerProxy = new HTTPSamplerProxy(implementation);
+ httpSamplerProxy.setName(LABEL);
+ httpSamplerProxy.setConnectTimeout("500");
+ httpSamplerProxy.setResponseTimeout("1000");
+ httpSamplerProxy.setImageParser(true);
+ httpSamplerProxy.setMethod("GET");
+ httpSamplerProxy.setPath(JMETER_HOME_PAGE);
+ // We intentionally keep only resources which start with JMETER_HOME_PAGE
+ httpSamplerProxy.setEmbeddedUrlRE(JMETER_HOME_PAGE+".*");
+ SampleResult result = httpSamplerProxy.sample();
+ assertEquals(LABEL, result.getSampleLabel());
+ SampleResult[] subResults = result.getSubResults();
+ return subResults;
+ }
+}
Propchange: jmeter/trunk/test/src/org/apache/jmeter/protocol/http/sampler/SamplingNamingTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jmeter/trunk/test/src/org/apache/jmeter/protocol/http/sampler/SamplingNamingTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1859230&r1=1859229&r2=1859230&view=diff
==============================================================================
--- jmeter/trunk/xdocs/changes.xml [utf-8] (original)
+++ jmeter/trunk/xdocs/changes.xml [utf-8] Tue May 14 13:14:11 2019
@@ -132,6 +132,7 @@ to view the last major behaviors with th
<h3>HTTP Samplers and Test Script Recorder</h3>
<ul>
<li><bug>63298</bug>HTTP Requests with encoded URLs are being sent in decoded format</li>
+ <li><bug>63364</bug>When setting <code>subresults.disable_renaming=true</code>, sub results are still renamed using their parent SampleLabel while they shouldn't. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
</ul>
<h3>Other Samplers</h3>