Author: sebb
Date: Wed Sep 26 07:03:31 2007
New Revision: 579657

URL: http://svn.apache.org/viewvc?rev=579657&view=rev
Log:
Add eval() and evalVar() functions

Modified:
    
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
    jakarta/jmeter/trunk/test/src/org/apache/jmeter/functions/PackageTest.java
    jakarta/jmeter/trunk/xdocs/changes.xml
    jakarta/jmeter/trunk/xdocs/usermanual/functions.xml

Modified: 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties?rev=579657&r1=579656&r2=579657&view=diff
==============================================================================
--- 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties 
(original)
+++ 
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties 
Wed Sep 26 07:03:31 2007
@@ -172,6 +172,8 @@
 error_occurred=Error Occurred
 error_title=Error
 es=Spanish
+eval_name_param=Text containing variable and function references
+evalvar_name_param=Name of variable
 example_data=Sample Data
 example_title=Example Sampler
 exit=Exit

Modified: 
jakarta/jmeter/trunk/test/src/org/apache/jmeter/functions/PackageTest.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/test/src/org/apache/jmeter/functions/PackageTest.java?rev=579657&r1=579656&r2=579657&view=diff
==============================================================================
--- jakarta/jmeter/trunk/test/src/org/apache/jmeter/functions/PackageTest.java 
(original)
+++ jakarta/jmeter/trunk/test/src/org/apache/jmeter/functions/PackageTest.java 
Wed Sep 26 07:03:31 2007
@@ -45,11 +45,11 @@
 import org.apache.log.Logger;
 
 /**
- * @version $Revision$ $Date$
+ * Test cases for Functions
  */
 public class PackageTest extends JMeterTestCase {
 
-       transient private static final Logger log = 
LoggingManager.getLoggerForClass();
+       private static final Logger log = LoggingManager.getLoggerForClass();
 
        static {
                // LoggingManager.setPriority("DEBUG","jmeter");
@@ -184,8 +184,14 @@
         allsuites.addTest(par3);
 
         TestSuite variable = new TestSuite("Variable");
-        random.addTest(new PackageTest("VariableTest1"));
+        variable.addTest(new PackageTest("VariableTest1"));
         allsuites.addTest(variable);
+        
+        TestSuite eval = new TestSuite("Eval");
+        eval.addTest(new PackageTest("EvalTest1"));
+        eval.addTest(new PackageTest("EvalTest2"));
+        allsuites.addTest(eval);
+
         return allsuites;
        }
 
@@ -857,5 +863,34 @@
         r.setParameters(parms);
         s = r.execute(null,null);
         assertEquals("a1",s);
+    }        
+
+    public void EvalTest1() throws Exception {
+        EvalFunction eval = new EvalFunction();
+        vars.put("query","select ${column} from ${table}");
+        vars.put("column","name");
+        vars.put("table","customers");
+        Collection parms;
+        String s;
+        
+        parms = MakeParams("${query}",null,null);
+        eval.setParameters(parms);
+        s = eval.execute(null,null);
+        assertEquals("select name from customers",s);
+        
+    }
+
+    public void EvalTest2() throws Exception {
+        EvalVarFunction evalVar = new EvalVarFunction();
+        vars.put("query","select ${column} from ${table}");
+        vars.put("column","name");
+        vars.put("table","customers");
+        Collection parms;
+        String s;
+        
+        parms = MakeParams("query",null,null);
+        evalVar.setParameters(parms);
+        s = evalVar.execute(null,null);
+        assertEquals("select name from customers",s);
     }        
 }

Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=579657&r1=579656&r2=579657&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Wed Sep 26 07:03:31 2007
@@ -41,6 +41,7 @@
 <li>Add File->Revert to easily drop the current changes and reload the project 
file currently loaded</li>
 <li>Bug 31366 - Remember recently opened file(s)</li>
 <li>Bug 43351 - Add support for Parameters and script file to all BeanShell 
test elements</li>
+<li>New functions: __eval() and __evalVar()</li>
 </ul>
 
 <!--  ===================  -->

Modified: jakarta/jmeter/trunk/xdocs/usermanual/functions.xml
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/usermanual/functions.xml?rev=579657&r1=579656&r2=579657&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/usermanual/functions.xml (original)
+++ jakarta/jmeter/trunk/xdocs/usermanual/functions.xml Wed Sep 26 07:03:31 2007
@@ -761,6 +761,43 @@
 </properties>
 </component>
 
+<component index="&sect-num;.5.20" name="__evalVar">
+<description>
+       <p>The eval function returns the result of evaluating an expression 
stored in a variable.
+       </p>
+       <p>
+       This allows one to read a string from a file, and process any variable 
references in it.
+       For example, if the variable "query" contains "select ${column} from 
${table}" 
+       and "column" and "table" contain "name" and "customers", then 
${__evalVar(query)}
+       will evaluate as "select name from customers". 
+       </p>
+       </description>
+
+<properties>
+        <property name="Variable name" required="Yes">
+        The variable to be evaluated. 
+        </property>
+</properties>
+</component>
+<component index="&sect-num;.5.21" name="__eval">
+<description>
+       <p>The eval function returns the result of evaluating an expression.
+       </p>
+       <p>
+       This allows one to interpolate variable and function references in a 
string.
+       For example, if "column" and "table" contain "name" and "customers", 
+       then ${__eval(select ${column} from ${table})}
+       will evaluate as "select name from customers". 
+       </p>
+       </description>
+
+<properties>
+        <property name="Variable name" required="Yes">
+        The variable to be evaluated. 
+        </property>
+</properties>
+</component>
+
 </subsection>
 
 <subsection name="&sect-num;.6 Pre-defined Variables" anchor="predefinedvars">



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to