Ping. Felix
Am 3. Mai 2017 15:03:04 MESZ schrieb Felix Schumacher <felix.schumac...@internetallee.de>: >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/TestValueReplacer.java >> >> Modified: >> >jmeter/trunk/test/src/org/apache/jmeter/engine/util/TestValueReplacer.java >> URL: >> >http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/engine/util/TestValueReplacer.java?rev=1793271&r1=1793270&r2=1793271&view=diff >> >============================================================================== >> --- >> >jmeter/trunk/test/src/org/apache/jmeter/engine/util/TestValueReplacer.java >> (original) >> +++ >> >jmeter/trunk/test/src/org/apache/jmeter/engine/util/TestValueReplacer.java >> Sun Apr 30 20:34:17 2017 >> @@ -107,6 +107,24 @@ public class TestValueReplacer extends J >> String replacedDomain = >> element.getPropertyAsString("domain"); >> 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? > >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. > >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 {