Am 23.05.2017 um 12:03 schrieb Philippe Mouawad:
Hi Felix,
Sorry for no reply , it was out of my radar.

Regards

On Wed, May 3, 2017 at 3:03 PM, Felix Schumacher <
felix.schumac...@internetallee.de> wrote:

Am 30.04.2017 22:34, schrieb pmoua...@apache.org:

Author: pmouawad
Date: Sun Apr 30 20:34:17 2017
New Revision: 1793271

URL: http://svn.apache.org/viewvc?rev=1793271&view=rev
Log:
Add test case to show partial replacement does not work

Modified:
     jmeter/trunk/test/src/org/apache/jmeter/engine/util/TestValu
eReplacer.java

Modified:
jmeter/trunk/test/src/org/apache/jmeter/engine/util/TestValu
eReplacer.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apach
e/jmeter/engine/util/TestValueReplacer.java?rev=1793271&r1=
1793270&r2=1793271&view=diff
============================================================
==================
---
jmeter/trunk/test/src/org/apache/jmeter/engine/util/TestValu
eReplacer.java
(original)
+++
jmeter/trunk/test/src/org/apache/jmeter/engine/util/TestValu
eReplacer.java
Sun Apr 30 20:34:17 2017
@@ -107,6 +107,24 @@ public class TestValueReplacer extends J
              String replacedDomain = element.getPropertyAsString("d
omain");
              assertEquals("${${shortMatch}", replacedDomain);
          }
+
+        @Test
+        public void test2Matches() throws Exception {
+            TestPlan plan = new TestPlan();
+            plan.addParameter("firstMatch", "toto");
+            plan.addParameter("secondMatch", "005");
+            ValueReplacer replacer = new ValueReplacer(plan);
+            TestElement element = new TestPlan();
+            element.setProperty(new StringProperty("mail",
"toto%40005"));

If you want to replace 005 "in" a word (40005), then you have to surround
the regex with parentheses. The '%' is a word boundary, '0' is not.

So instead of "005" you have to write "(005)". The behaviour is described
in http://jmeter.apache.org/usermanual/component_reference.
html#HTTP(S)_Test_Script_Recorder
and further down on that page under "User Defined Variable replacement".

But maybe you wanted to document that behaviour here?

Yes. I wanted to document that due to encoding, replacement of 005 would
not work.
Ok, so the two matches were misleading me. I have rewritten the test case to four distinct test cases and removed the firstMatch, which I think is not necessary for this one.



A few notes on the test itself. I like tests, that test one thing in one
method - this tests two things.
It might help, if the test name hints at the problem by using a name, that
is a bit more descriptive.

I agree, but I don't know how to name it.
I tried to give meaningful names to the new tests. I hope you like them :)

Sorry for my late reply, but I didn't expect any more text after your first "Regards".

Felix


Regards,
  Felix


+            replacer.reverseReplace(element, true);
+            String replacedDomain = element.getPropertyAsString("mail");
+            assertEquals("${firstMatch}%40005", replacedDomain);
+
+            element.setProperty(new StringProperty("mail", "toto@005"));
+            replacer.reverseReplace(element, true);
+            replacedDomain = element.getPropertyAsString("mail");
+            assertEquals("${firstMatch}@${secondMatch}",
replacedDomain);
+        }

          @Test
          public void testReplace() throws Exception {



Reply via email to