Author: pmouawad Date: Tue Nov 14 21:43:25 2017 New Revision: 1815272 URL: http://svn.apache.org/viewvc?rev=1815272&view=rev Log: Improve Javadocs Use isEmpty Improve logging
Modified: jmeter/trunk/src/functions/org/apache/jmeter/functions/RandomFromMultipleVars.java Modified: jmeter/trunk/src/functions/org/apache/jmeter/functions/RandomFromMultipleVars.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/functions/org/apache/jmeter/functions/RandomFromMultipleVars.java?rev=1815272&r1=1815271&r2=1815272&view=diff ============================================================================== --- jmeter/trunk/src/functions/org/apache/jmeter/functions/RandomFromMultipleVars.java (original) +++ jmeter/trunk/src/functions/org/apache/jmeter/functions/RandomFromMultipleVars.java Tue Nov 14 21:43:25 2017 @@ -30,12 +30,12 @@ import org.apache.jmeter.samplers.Sample import org.apache.jmeter.samplers.Sampler; import org.apache.jmeter.threads.JMeterVariables; import org.apache.jmeter.util.JMeterUtils; -import org.slf4j.LoggerFactory; import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** - * Provides a RandomFromMultiResult function which returns a random element from a multi valued extracted variable. - * Those kind of variable are extracted by: + * Provides a RandomFromMultipleVars function which returns a random element from a multi valued extracted variable. + * Those kind of variables are extracted by: * - Regular Expression extractor * - JSON extractor * - CSS/JQuery extractor @@ -61,6 +61,7 @@ public class RandomFromMultipleVars exte * No-arg constructor. */ public RandomFromMultipleVars() { + super(); } /** {@inheritDoc} */ @@ -75,25 +76,25 @@ public class RandomFromMultipleVars exte if (vars != null) { // vars will be null on TestPlan List<String> results = new ArrayList<>(); String[] variables = variablesNamesSplitBySeparatorValue.split(SEPARATOR); - for (String varName : variables) { - if(!StringUtils.isEmpty(varName)) { - extractVariableValuesToList(varName, vars, results); + for (String currentVarName : variables) { + if(!StringUtils.isEmpty(currentVarName)) { + extractVariableValuesToList(currentVarName, vars, results); } } - if(results.size() > 0) { + if(!results.isEmpty()) { int randomIndex = ThreadLocalRandom.current().nextInt(0, results.size()); outputValue = results.get(randomIndex); } else { if(log.isDebugEnabled()) { - log.debug("RandomFromMultiResult didn't find <var>_matchNr in variables :'"+variablesNamesSplitBySeparatorValue - +"' using separator:'"+separator+"', will return empty value"); + log.debug("RandomFromMultiResult didn't find <var>_matchNr in variables :'{}' using separator:'{}', will return empty value", + variablesNamesSplitBySeparatorValue, separator); } } if (varName != null) { final String varTrim = varName.execute().trim(); - if (varTrim.length() > 0){ + if (!varTrim.isEmpty()){ vars.put(varTrim, outputValue); } } @@ -103,14 +104,14 @@ public class RandomFromMultipleVars exte } /** + * Get from vars the values of variableName (can be missing, contain 1 value or contain multiple values (_matchNr)) + * and stores them in results * @param variableName String * @param vars {@link JMeterVariables} * @param results {@link List} where results are stored - * @throws NumberFormatException */ private void extractVariableValuesToList(String variableName, - JMeterVariables vars, List<String> results) - throws NumberFormatException { + JMeterVariables vars, List<String> results) { String matchNumberAsStr = vars.get(variableName+"_matchNr"); int matchNumber = 0; if(!StringUtils.isEmpty(matchNumberAsStr)) {