This is an automated email from the ASF dual-hosted git repository.
fschumacher pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jmeter.git
The following commit(s) were added to refs/heads/master by this push:
new a5e7c62 Make method less complex by extracting code into named
private methods
a5e7c62 is described below
commit a5e7c62e74710363631cc27a405a5ae5a28a1456
Author: Felix Schumacher <[email protected]>
AuthorDate: Thu Jun 10 20:59:37 2021 +0200
Make method less complex by extracting code into named private methods
---
.../extractor/json/jsonpath/JSONPostProcessor.java | 33 ++++++++++++++--------
1 file changed, 22 insertions(+), 11 deletions(-)
diff --git
a/src/components/src/main/java/org/apache/jmeter/extractor/json/jsonpath/JSONPostProcessor.java
b/src/components/src/main/java/org/apache/jmeter/extractor/json/jsonpath/JSONPostProcessor.java
index a307f3b..3e7c5cf 100644
---
a/src/components/src/main/java/org/apache/jmeter/extractor/json/jsonpath/JSONPostProcessor.java
+++
b/src/components/src/main/java/org/apache/jmeter/extractor/json/jsonpath/JSONPostProcessor.java
@@ -18,6 +18,7 @@
package org.apache.jmeter.extractor.json.jsonpath;
import java.io.Serializable;
+import java.text.ParseException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -82,29 +83,39 @@ public class JSONPostProcessor
if (jsonResponses.isEmpty()) {
handleEmptyResponse(vars, defaultValues, i,
currentRefName);
} else {
- List<Object> extractedValues = new ArrayList<>();
- for (String jsonResponse: jsonResponses) {
-
extractedValues.addAll(localMatcher.get().extractWithJsonPath(jsonResponse,
currentJsonPath));
- }
- // if no values extracted, default value added
- if (extractedValues.isEmpty()) {
- handleEmptyResult(vars, defaultValues, i, matchNumber,
currentRefName);
- } else {
- handleNonEmptyResult(vars, defaultValues, i,
matchNumber, currentRefName, extractedValues);
- }
+ List<Object> extractedValues =
extractValues(jsonResponses, currentJsonPath);
+ handleResult(vars, defaultValues, i, matchNumber,
currentRefName, extractedValues);
}
} catch (Exception e) {
- // if something wrong, default value added
if (log.isDebugEnabled()) {
log.error("Error processing JSON content in {}, message:
{}", getName(), e.getLocalizedMessage(), e);
} else {
log.error("Error processing JSON content in {}, message:
{}", getName(), e.getLocalizedMessage());
}
+ // if something goes wrong, add default value
vars.put(currentRefName, defaultValues[i]);
}
}
}
+ private void handleResult(JMeterVariables vars, String[] defaultValues,
int i, int matchNumber,
+ String currentRefName, List<Object> extractedValues) {
+ // if no values extracted, default value added
+ if (extractedValues.isEmpty()) {
+ handleEmptyResult(vars, defaultValues, i, matchNumber,
currentRefName);
+ } else {
+ handleNonEmptyResult(vars, defaultValues, i, matchNumber,
currentRefName, extractedValues);
+ }
+ }
+
+ private List<Object> extractValues(List<String> jsonResponses, String
currentJsonPath) throws ParseException {
+ List<Object> extractedValues = new ArrayList<>();
+ for (String jsonResponse: jsonResponses) {
+
extractedValues.addAll(localMatcher.get().extractWithJsonPath(jsonResponse,
currentJsonPath));
+ }
+ return extractedValues;
+ }
+
private void handleNonEmptyResult(JMeterVariables vars, String[]
defaultValues, int i, int matchNumber,
String currentRefName, List<Object> extractedValues) {
// if more than one value extracted, suffix with "_index"