use of org.apache.jmeter.threads.JMeterContext in project jmeter by apache.
the class TestJSONPostProcessor method testEmptyOrNullResult.
@ParameterizedTest
@MethodSource("provideEmptyOrNullResultArgs")
void testEmptyOrNullResult(String contextValue, String jsonPath, String matchNumber, String expectedMatchNumber, String expectedResult) throws ParseException {
JMeterContext context = JMeterContextService.getContext();
JSONPostProcessor processor = setupProcessor(context, matchNumber, false);
SampleResult result = new SampleResult();
result.setResponseData(contextValue.getBytes(StandardCharsets.UTF_8));
JMeterVariables vars = new JMeterVariables();
context.setVariables(vars);
context.setPreviousResult(result);
processor.setJsonPathExpressions(jsonPath);
processor.setDefaultValues("NONE");
processor.setScopeAll();
processor.process();
assertThat(vars.get(VAR_NAME), CoreMatchers.is(expectedResult));
assertThat(vars.get(VAR_NAME + "_matchNr"), CoreMatchers.is(expectedMatchNumber));
assertThat(vars.get(VAR_NAME + "_1"), CoreMatchers.is(CoreMatchers.nullValue()));
}
use of org.apache.jmeter.threads.JMeterContext in project jmeter by apache.
the class TestJSONPostProcessor method testProcessRandomElementMultipleMatches.
@Test
void testProcessRandomElementMultipleMatches() {
JMeterContext context = JMeterContextService.getContext();
JSONPostProcessor processor = setupProcessor(context, "0", true);
JMeterVariables vars = new JMeterVariables();
processor.setDefaultValues("NONE");
processor.setJsonPathExpressions("$[*]");
processor.setRefNames("varname");
processor.setScopeVariable("contentvar");
context.setVariables(vars);
vars.put("contentvar", "[\"one\", \"two\"]");
processor.process();
assertThat(vars.get("varname"), CoreMatchers.is(CoreMatchers.anyOf(CoreMatchers.is("one"), CoreMatchers.is("two"))));
assertThat(vars.get("varname_1"), CoreMatchers.is(CoreMatchers.nullValue()));
assertThat(vars.get("varname_2"), CoreMatchers.is(CoreMatchers.nullValue()));
assertThat(vars.get("varname_matchNr"), CoreMatchers.is(CoreMatchers.nullValue()));
}
use of org.apache.jmeter.threads.JMeterContext in project jmeter by apache.
the class TestJSONPostProcessor method testProcessAllElementsMultipleMatches.
@Test
void testProcessAllElementsMultipleMatches() {
JMeterContext context = JMeterContextService.getContext();
JSONPostProcessor processor = setupProcessor(context, "-1", true);
JMeterVariables vars = new JMeterVariables();
processor.setDefaultValues("NONE");
processor.setJsonPathExpressions("$[*]");
processor.setRefNames("varname");
processor.setScopeVariable("contentvar");
context.setVariables(vars);
vars.put("contentvar", "[\"one\", \"two\"]");
processor.process();
assertThat(vars.get("varname_1"), CoreMatchers.is("one"));
assertThat(vars.get("varname_2"), CoreMatchers.is("two"));
assertThat(vars.get("varname_matchNr"), CoreMatchers.is("2"));
}
use of org.apache.jmeter.threads.JMeterContext in project jmeter by apache.
the class TestJSONPostProcessor method testPR235CaseMatchOneWithZero.
@Test
void testPR235CaseMatchOneWithZero() {
JMeterContext context = JMeterContextService.getContext();
JSONPostProcessor processor = setupProcessor(context, "-1", true);
JMeterVariables vars = new JMeterVariables();
processor.setDefaultValues("NONE");
processor.setJsonPathExpressions("$[*]");
processor.setRefNames("varname");
processor.setScopeVariable("contentvar");
context.setVariables(vars);
vars.put("contentvar", "[\"one\", \"two\"]");
processor.process();
assertThat(vars.get("varname_1"), CoreMatchers.is("one"));
assertThat(vars.get("varname_2"), CoreMatchers.is("two"));
assertThat(vars.get("varname_matchNr"), CoreMatchers.is("2"));
vars.put("contentvar", "[\"A\", \"B\"]");
processor.setMatchNumbers("0");
processor.process();
assertThat(vars.get("varname"), CoreMatchers.is(CoreMatchers.anyOf(CoreMatchers.is("A"), CoreMatchers.is("B"))));
assertThat(vars.get("varname_matchNr"), CoreMatchers.is(CoreMatchers.nullValue()));
assertThat(vars.get("varname_1"), CoreMatchers.is(CoreMatchers.nullValue()));
assertThat(vars.get("varname_2"), CoreMatchers.is(CoreMatchers.nullValue()));
}
use of org.apache.jmeter.threads.JMeterContext in project jmeter by apache.
the class TestJSONPostProcessor method testExtractSimpleArrayElements.
@Test
void testExtractSimpleArrayElements() {
JMeterContext context = JMeterContextService.getContext();
JSONPostProcessor processor = setupProcessor(context, "-1");
String data = "[1,2,3]";
SampleResult result = new SampleResult();
result.setResponseData(data.getBytes(StandardCharsets.UTF_8));
JMeterVariables vars = new JMeterVariables();
context.setVariables(vars);
context.setPreviousResult(result);
processor.setJsonPathExpressions("$[*]");
processor.process();
assertEquals("1,2,3", vars.get(VAR_NAME + "_ALL"));
for (int i = 1; i <= 3; i++) {
String v = Integer.toString(i);
assertEquals(v, vars.get(VAR_NAME + "_" + v));
}
assertEquals("3", vars.get(VAR_NAME + "_matchNr"));
}
Aggregations