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/03/02 16:14:17 UTC

svn commit: r513803 - in /jakarta/jmeter/branches/rel-2-2: 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: Fri Mar  2 07:14:15 2007
New Revision: 513803

URL: http://svn.apache.org/viewvc?view=rev&rev=513803
Log:
Added __V variable function to resolve nested variable names

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

Modified: jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/resources/messages.properties
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/resources/messages.properties?view=diff&rev=513803&r1=513802&r2=513803
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/resources/messages.properties (original)
+++ jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/resources/messages.properties Fri Mar  2 07:14:15 2007
@@ -745,6 +745,7 @@
 userpw=Password
 value=Value
 var_name=Reference Name
+variable_name_param=Name of variable (may include variable and function references)
 view_graph_tree_title=View Graph Tree
 view_results_in_table=View Results in Table
 view_results_tab_request=Request

Modified: jakarta/jmeter/branches/rel-2-2/test/src/org/apache/jmeter/functions/PackageTest.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/test/src/org/apache/jmeter/functions/PackageTest.java?view=diff&rev=513803&r1=513802&r2=513803
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/test/src/org/apache/jmeter/functions/PackageTest.java (original)
+++ jakarta/jmeter/branches/rel-2-2/test/src/org/apache/jmeter/functions/PackageTest.java Fri Mar  2 07:14:15 2007
@@ -183,6 +183,9 @@
         par3.addTest(new PackageTest("XPathThread2"));
         allsuites.addTest(par3);
 
+        TestSuite variable = new TestSuite("Variable");
+        random.addTest(new PackageTest("VariableTest1"));
+        allsuites.addTest(variable);
         return allsuites;
 	}
 
@@ -809,4 +812,50 @@
         //String s = 
         	r.execute(null,null);
     }
+
+    public void VariableTest1() throws Exception {
+        Variable r = new Variable();
+        vars.put("A_1","a1");
+        vars.put("A_2","a2");
+        vars.put("one","1");
+        vars.put("two","2");
+        vars.put("V","A");
+        Collection parms;
+        String s;
+        
+        parms = MakeParams("V",null,null);
+        r.setParameters(parms);
+        s = r.execute(null,null);
+        assertEquals("A",s);
+        
+        parms = MakeParams("X",null,null);
+        r.setParameters(parms);
+        s = r.execute(null,null);
+        assertEquals("X",s);
+        
+        parms = MakeParams("A${X}",null,null);
+        r.setParameters(parms);
+        s = r.execute(null,null);
+        assertEquals("A${X}",s);
+        
+        parms = MakeParams("A_1",null,null);
+        r.setParameters(parms);
+        s = r.execute(null,null);
+        assertEquals("a1",s);
+        
+        parms = MakeParams("A_2",null,null);
+        r.setParameters(parms);
+        s = r.execute(null,null);
+        assertEquals("a2",s);
+        
+        parms = MakeParams("A_${two}",null,null);
+        r.setParameters(parms);
+        s = r.execute(null,null);
+        assertEquals("a2",s);
+        
+        parms = MakeParams("${V}_${one}",null,null);
+        r.setParameters(parms);
+        s = r.execute(null,null);
+        assertEquals("a1",s);
+    }        
 }

Modified: jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml?view=diff&rev=513803&r1=513802&r2=513803
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml (original)
+++ jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml Fri Mar  2 07:14:15 2007
@@ -67,6 +67,7 @@
 <li>Change to htmlparser 2.0</li>
 <li>Updated to xstream 1.2.1/xpp3_min-1.1.3.4.O</li>
 <li>Bug 39717 - use icons in the results tree instead of colors</li>
+<li>Added __V variable function to resolve nested variable names</li>
 </ul>
 
 <h4>Bug fixes:</h4>

Modified: jakarta/jmeter/branches/rel-2-2/xdocs/usermanual/functions.xml
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/xdocs/usermanual/functions.xml?view=diff&rev=513803&r1=513802&r2=513803
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/xdocs/usermanual/functions.xml (original)
+++ jakarta/jmeter/branches/rel-2-2/xdocs/usermanual/functions.xml Fri Mar  2 07:14:15 2007
@@ -24,7 +24,7 @@
 <document prev="component_reference.html" next="regular_expressions.html" date="2004/06/12">
 
 <properties>
-  <title>User's Manual: Functions</title>
+  <title>User's Manual: Functions and Variables</title>
 </properties>
 
 <body>
@@ -75,6 +75,7 @@
         <li><a href="#__XPath">XPath - XPath use an xpath expression</a></li>
         <li><a href="#__time">time - return current time in various formats</a></li>
         <li><a href="#__jexl">jexl - evaluate a Commons Jexl expression</a></li>
+        <li><a href="#__V">V evaluate a variable expression</a></li>
 </ul>
 
 <subsection name="&sect-num;.1 What can functions do" anchor="what_can_do">
@@ -84,6 +85,11 @@
 run.  This could be used to replace the DOMAIN field of all HTTP requests, for example - making it a simple 
 matter to change a test to target a different server with the same test.
 </p>
+<p>
+Note that variables cannot currently be nested; i.e ${Var${N}} does not work.
+The __V (variable) function (since 2.2.1) can be used to do this: ${__V(Var${N})}.
+In earlier JMeter versions one can use ${__BeanShell(vars.get("Var${N}")}.
+</p>
 <p>This type of replacement is possible without functions, but was less convenient and less intuitive.
 It required users to create default config elements that would fill in blank values of Samplers.  User-defined
 functions allow one to replace only part of any given value, not just filling in blank values.</p>
@@ -690,6 +696,19 @@
 <properties>
         <property name="Expression" required="Yes">
         The expression to be evaluated. 
+        </property>
+</properties>
+</component>
+
+<component index="&sect-num;.5.19" name="__V">
+<description>
+	<p>The V (variable) function returns the result of evaluating a variable name expression.
+	</p>
+	</description>
+
+<properties>
+        <property name="Variable name" required="Yes">
+        The variable to be evaluated. 
         </property>
 </properties>
 </component>



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org