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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to