You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by se...@apache.org on 2007/09/26 16:03:32 UTC

svn commit: r579657 - in /jakarta/jmeter/trunk: src/core/org/apache/jmeter/resources/messages.properties test/src/org/apache/jmeter/functions/PackageTest.java xdocs/changes.xml xdocs/usermanual/functions.xml

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: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org