You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by pm...@apache.org on 2017/11/14 21:43:25 UTC

svn commit: r1815272 - /jmeter/trunk/src/functions/org/apache/jmeter/functions/RandomFromMultipleVars.java

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)) {