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="§-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="§-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]