use of org.apache.jmeter.testelement.property.StringProperty in project jmeter by apache.
the class TestValueReplacer method testReplaceFunctionWithBackslash.
/*
* This test should be compared with the one above.
* Here, the string contains a valid variable reference, so all
* backslashes are also processed.
*
* See https://bz.apache.org/bugzilla/show_bug.cgi?id=53534
*/
@Test
public void testReplaceFunctionWithBackslash() throws Exception {
ValueReplacer replacer = new ValueReplacer();
replacer.setUserDefinedVariables(variables.getUserDefinedVariables());
TestElement element = new ConfigTestElement();
String input = "${server} \\ \\\\ \\\\\\ \\, ";
element.setProperty(new StringProperty("domain", input));
replacer.replaceValues(element);
element.setRunningVersion(true);
assertEquals("jakarta.apache.org \\ \\ \\\\ , ", element.getPropertyAsString("domain"));
}
use of org.apache.jmeter.testelement.property.StringProperty in project jmeter by apache.
the class TestValueReplacer method testReverseReplacementXml.
@Test
public void testReverseReplacementXml() throws Exception {
ValueReplacer replacer = new ValueReplacer(variables);
assertTrue(variables.getUserDefinedVariables().containsKey("bounded_regex"));
assertTrue(variables.getUserDefinedVariables().containsKey("normal_regex"));
assertTrue(replacer.containsKey("bounded_regex"));
assertTrue(replacer.containsKey("normal_regex"));
TestElement element = new TestPlan();
element.setProperty(new StringProperty("domain", "<this><is>xml</this></is>"));
List<Object> argsin = new ArrayList<>();
argsin.add("<this><is>xml</this></is>");
argsin.add("And I say: Hello World.");
element.setProperty(new CollectionProperty("args", argsin));
replacer.reverseReplace(element, true);
@SuppressWarnings("unchecked") List<JMeterProperty> args = (List<JMeterProperty>) element.getProperty("args").getObjectValue();
assertEquals("${bounded_regex}", element.getPropertyAsString("domain"));
assertEquals("${bounded_regex}", args.get(0).getStringValue());
}
use of org.apache.jmeter.testelement.property.StringProperty in project jmeter by apache.
the class TestSwitchController method testFunction.
/*
* N.B. Requires ApacheJMeter_functions.jar to be on the classpath,
* otherwise the function cannot be resolved.
*/
@Test
public void testFunction() throws Exception {
JMeterContext jmctx = JMeterContextService.getContext();
Map<String, String> variables = new HashMap<>();
ReplaceStringWithFunctions transformer = new ReplaceStringWithFunctions(new CompoundVariable(), variables);
jmctx.setVariables(new JMeterVariables());
JMeterVariables jmvars = jmctx.getVariables();
jmvars.put("VAR", "100");
StringProperty prop = new StringProperty(SwitchController.SWITCH_VALUE, "${__counter(TRUE,VAR)}");
JMeterProperty newProp = transformer.transformValue(prop);
newProp.setRunningVersion(true);
GenericController controller = new GenericController();
SwitchController switch_cont = new SwitchController();
switch_cont.setProperty(newProp);
controller.addTestElement(new TestSampler("before"));
controller.addTestElement(switch_cont);
switch_cont.addTestElement(new TestSampler("0"));
switch_cont.addTestElement(new TestSampler("1"));
switch_cont.addTestElement(new TestSampler("2"));
switch_cont.addTestElement(new TestSampler("3"));
controller.addTestElement(new TestSampler("after"));
controller.initialize();
assertEquals("100", jmvars.get("VAR"));
for (int i = 1; i <= 3; i++) {
assertEquals("Loop " + i, "before", nextName(controller));
assertEquals("Loop " + i, "" + i, nextName(controller));
assertEquals("Loop " + i, "" + i, jmvars.get("VAR"));
assertEquals("Loop " + i, "after", nextName(controller));
assertNull(nextName(controller));
}
int i = 4;
assertEquals("Loop " + i, "before", nextName(controller));
assertEquals("Loop " + i, "0", nextName(controller));
assertEquals("Loop " + i, "" + i, jmvars.get("VAR"));
assertEquals("Loop " + i, "after", nextName(controller));
assertNull(nextName(controller));
assertEquals("4", jmvars.get("VAR"));
}
use of org.apache.jmeter.testelement.property.StringProperty in project jmeter by apache.
the class PackageTest method testParseExample14.
// Escaped dollar commma and backslash with missing function reference
@Test
public void testParseExample14() throws Exception {
StringProperty prop = new StringProperty("html", "\\$a \\, \\\\ \\x \\ ${__missing(a)} \\$b \\, \\\\ cd");
JMeterProperty newProp = transformer.transformValue(prop);
newProp.setRunningVersion(true);
// N.B. Backslashes are removed before dollar, comma and backslash
assertEquals("$a , \\ \\x \\ ${__missing(a)} $b , \\ cd", newProp.getStringValue());
}
use of org.apache.jmeter.testelement.property.StringProperty in project jmeter by apache.
the class PackageTest method testParseExample9.
@Test
public void testParseExample9() throws Exception {
StringProperty prop = new StringProperty("html", "${__regexFunction(([$]\\d+\\.\\d+),$1$)}");
JMeterProperty newProp = transformer.transformValue(prop);
newProp.setRunningVersion(true);
assertEquals("org.apache.jmeter.testelement.property.FunctionProperty", newProp.getClass().getName());
assertEquals("$3.47", newProp.getStringValue());
}
Aggregations