Author: pmouawad
Date: Sun Mar 18 14:30:39 2018
New Revision: 1827141

URL: http://svn.apache.org/viewvc?rev=1827141&view=rev
Log:
Bug 62178 - Add default value to __V function
Contributed by Orimarko
Bugzilla Id: 62178

Modified:
    jmeter/trunk/src/functions/org/apache/jmeter/functions/Variable.java
    jmeter/trunk/test/src/org/apache/jmeter/functions/VariableTest.java
    jmeter/trunk/xdocs/changes.xml
    jmeter/trunk/xdocs/usermanual/functions.xml

Modified: jmeter/trunk/src/functions/org/apache/jmeter/functions/Variable.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/src/functions/org/apache/jmeter/functions/Variable.java?rev=1827141&r1=1827140&r2=1827141&view=diff
==============================================================================
--- jmeter/trunk/src/functions/org/apache/jmeter/functions/Variable.java 
(original)
+++ jmeter/trunk/src/functions/org/apache/jmeter/functions/Variable.java Sun 
Mar 18 14:30:39 2018
@@ -33,10 +33,11 @@ import org.apache.jmeter.util.JMeterUtil
  *
  * Parameters:
  * - variable name
+ * - default value
  *
  * Returns:
  * - the variable value, but if not found
- * - the variable name itself
+ * - the default value if set, and if not the variable name itself
  * @since 2.3RC3
  */
 public class Variable extends AbstractFunction {
@@ -47,25 +48,29 @@ public class Variable extends AbstractFu
 
     // Number of parameters expected - used to reject invalid calls
     private static final int MIN_PARAMETER_COUNT = 1;
-    private static final int MAX_PARAMETER_COUNT = 1;
+    private static final int MAX_PARAMETER_COUNT = 2;
 
     static {
         desc.add(JMeterUtils.getResString("variable_name_param")); 
//$NON-NLS-1$
+        desc.add(JMeterUtils.getResString("property_default_param")); 
//$NON-NLS-1$
     }
 
     private Object[] values;
 
-    public Variable() {
+    public Variable() { 
+        //used for test
     }
 
     /** {@inheritDoc} */
     @Override
-    public String execute(SampleResult previousResult, Sampler currentSampler)
-            throws InvalidVariableException {
+    public String execute(SampleResult previousResult, Sampler currentSampler) 
throws InvalidVariableException {
         String variableName = ((CompoundVariable) values[0]).execute();
+        String variableDefault = variableName;
+        if (values.length > 1) {
+            variableDefault = ((CompoundVariable) values[1]).execute();
+        }
         String variableValue = getVariables().get(variableName);
-        return variableValue == null? variableName : variableValue;
-
+        return variableValue == null ? variableDefault : variableValue;
     }
 
     /** {@inheritDoc} */

Modified: jmeter/trunk/test/src/org/apache/jmeter/functions/VariableTest.java
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/functions/VariableTest.java?rev=1827141&r1=1827140&r2=1827141&view=diff
==============================================================================
--- jmeter/trunk/test/src/org/apache/jmeter/functions/VariableTest.java 
(original)
+++ jmeter/trunk/test/src/org/apache/jmeter/functions/VariableTest.java Sun Mar 
18 14:30:39 2018
@@ -57,7 +57,17 @@ public class VariableTest extends JMeter
         parms = makeParams("V",null,null);
         r.setParameters(parms);
         s = r.execute(null,null);
-        assertEquals("A",s);
+        assertEquals("A",s);        
+        
+        parms = makeParams("V","DEFAULT",null);
+        r.setParameters(parms);
+        s = r.execute(null,null);
+        assertEquals("A",s);        
+        
+        parms = makeParams("EMPTY","DEFAULT",null);
+        r.setParameters(parms);
+        s = r.execute(null,null);
+        assertEquals("DEFAULT",s);
         
         parms = makeParams("X",null,null);
         r.setParameters(parms);

Modified: jmeter/trunk/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1827141&r1=1827140&r2=1827141&view=diff
==============================================================================
--- jmeter/trunk/xdocs/changes.xml [utf-8] (original)
+++ jmeter/trunk/xdocs/changes.xml [utf-8] Sun Mar 18 14:30:39 2018
@@ -106,6 +106,7 @@ this behaviour, set <code>httpclient.res
 
 <h3>Functions</h3>
 <ul>
+    <li><bug>62178</bug>Add default value to <code>__V</code> function. 
Contributed by orimarko at gmail.com</li>
 </ul>
 
 <h3>I18N</h3>

Modified: jmeter/trunk/xdocs/usermanual/functions.xml
URL: 
http://svn.apache.org/viewvc/jmeter/trunk/xdocs/usermanual/functions.xml?rev=1827141&r1=1827140&r2=1827141&view=diff
==============================================================================
--- jmeter/trunk/xdocs/usermanual/functions.xml (original)
+++ jmeter/trunk/xdocs/usermanual/functions.xml Sun Mar 18 14:30:39 2018
@@ -1244,6 +1244,9 @@ i.intValue(); // or use i.longValue()
         <property name="Variable name" required="Yes">
         The variable to be evaluated. 
         </property>
+        <property name="Default value" required="No">
+        The default value in case no variable found, if it's empty and no 
variable found function returns the variable name 
+        </property>
 </properties>
 </component>
 


Reply via email to