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 ms...@apache.org on 2005/08/18 19:21:52 UTC
cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/testelement TestPlan.java
mstover1 2005/08/18 10:21:52
Modified: src/core/org/apache/jmeter/testelement/property Tag: rel-2-1
FunctionProperty.java
src/core/org/apache/jmeter/engine Tag: rel-2-1
StandardJMeterEngine.java PreCompiler.java
src/core/org/apache/jmeter/config Tag: rel-2-1
Arguments.java Argument.java
src/core/org/apache/jmeter/testelement Tag: rel-2-1
TestPlan.java
Log:
Make TestPlan variables and user-Defined Variables capable of using functions in their values that are evaluated once at test start.
Revision Changes Path
No revision
No revision
1.18.2.1 +4 -4 jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/FunctionProperty.java
Index: FunctionProperty.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/property/FunctionProperty.java,v
retrieving revision 1.18
retrieving revision 1.18.2.1
diff -u -r1.18 -r1.18.2.1
--- FunctionProperty.java 12 Jul 2005 20:50:25 -0000 1.18
+++ FunctionProperty.java 18 Aug 2005 17:21:51 -0000 1.18.2.1
@@ -70,12 +70,12 @@
JMeterContext ctx = JMeterContextService.getContext();// Expensive, so
// do
// once
- if (!isRunningVersion() || !ctx.isSamplingStarted()) {
+ if (!isRunningVersion() /*|| !ctx.isSamplingStarted()*/) {
log.debug("Not running version, return raw function string");
return function.getRawParameters();
} else {
log.debug("Running version, executing function");
- int iter = ctx.getVariables().getIteration();
+ int iter = ctx.getVariables() != null ? ctx.getVariables().getIteration() : -1;
if (iter < testIteration) {
testIteration = -1;
}
No revision
No revision
1.60.2.2 +3 -3 jakarta-jmeter/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java
Index: StandardJMeterEngine.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java,v
retrieving revision 1.60.2.1
retrieving revision 1.60.2.2
diff -u -r1.60.2.1 -r1.60.2.2
--- StandardJMeterEngine.java 17 Aug 2005 15:02:26 -0000 1.60.2.1
+++ StandardJMeterEngine.java 18 Aug 2005 17:21:51 -0000 1.60.2.2
@@ -301,7 +301,7 @@
if (((TestPlan) plan[0]).isSerialized()) {
serialized = true;
}
- JMeterContextService.startTest();
+ JMeterContextService.startTest();
compileTree();
/**
* Notification of test listeners needs to happen after function
@@ -359,9 +359,9 @@
log.info("Continue on error");
}
+ ListedHashTree threadGroupTree = (ListedHashTree) searcher.getSubTree(group);
+ threadGroupTree.add(group, testLevelElements);
for (int i = 0; running && i < threads.length; i++) {
- ListedHashTree threadGroupTree = (ListedHashTree) searcher.getSubTree(group);
- threadGroupTree.add(group, testLevelElements);
threads[i] = new JMeterThread(cloneTree(threadGroupTree), this, notifier);
threads[i].setThreadNum(i);
threads[i].setThreadGroup(group);
1.24.2.1 +14 -10 jakarta-jmeter/src/core/org/apache/jmeter/engine/PreCompiler.java
Index: PreCompiler.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/engine/PreCompiler.java,v
retrieving revision 1.24
retrieving revision 1.24.2.1
diff -u -r1.24 -r1.24.2.1
--- PreCompiler.java 12 Jul 2005 20:50:36 -0000 1.24
+++ PreCompiler.java 18 Aug 2005 17:21:51 -0000 1.24.2.1
@@ -52,21 +52,25 @@
* @see HashTreeTraverser#addNode(Object, HashTree)
*/
public void addNode(Object node, HashTree subTree) {
+ if(node instanceof TestElement)
+ {
+ try {
+ replacer.replaceValues((TestElement) node);
+ } catch (InvalidVariableException e) {
+ log.error("invalid variables", e);
+ }
+ }
if (node instanceof TestPlan) {
- Map args = ((TestPlan) node).getUserDefinedVariables();
+ ((TestPlan)node).prepareForPreCompile(); //A hack to make user-defined variables in the testplan element more dynamic
+ Map args = ((TestPlan) node).getUserDefinedVariables();
replacer.setUserDefinedVariables(args);
JMeterVariables vars = new JMeterVariables();
vars.putAll(args);
JMeterContextService.getContext().setVariables(vars);
- } else if (node instanceof TestElement) {
- try {
- replacer.replaceValues((TestElement) node);
- } catch (InvalidVariableException e) {
- log.error("invalid variables", e);
- }
- }
+ }
if (node instanceof Arguments) {
+ ((Arguments)node).setRunningVersion(true);
Map args = ((Arguments) node).getArgumentsAsMap();
replacer.addVariables(args);
JMeterContextService.getContext().getVariables().putAll(args);
No revision
No revision
1.10.2.1 +5 -2 jakarta-jmeter/src/core/org/apache/jmeter/config/Arguments.java
Index: Arguments.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/config/Arguments.java,v
retrieving revision 1.10
retrieving revision 1.10.2.1
diff -u -r1.10 -r1.10.2.1
--- Arguments.java 12 Jul 2005 20:50:59 -0000 1.10
+++ Arguments.java 18 Aug 2005 17:21:52 -0000 1.10.2.1
@@ -27,6 +27,8 @@
import org.apache.jmeter.testelement.property.CollectionProperty;
import org.apache.jmeter.testelement.property.PropertyIterator;
import org.apache.jmeter.testelement.property.TestElementProperty;
+import org.apache.jorphan.logging.LoggingManager;
+import org.apache.log.Logger;
// Mark Walsh, 2002-08-03 add method:
// addArgument(String name, Object value, Object metadata)
@@ -41,6 +43,7 @@
* @version $Revision$
*/
public class Arguments extends ConfigTestElement implements Serializable {
+ private static Logger log = LoggingManager.getLoggerForClass();
/** The name of the property used to store the arguments. */
public static final String ARGUMENTS = "Arguments.arguments";
1.10.2.1 +5 -2 jakarta-jmeter/src/core/org/apache/jmeter/config/Argument.java
Index: Argument.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/config/Argument.java,v
retrieving revision 1.10
retrieving revision 1.10.2.1
diff -u -r1.10 -r1.10.2.1
--- Argument.java 12 Jul 2005 20:50:59 -0000 1.10
+++ Argument.java 18 Aug 2005 17:21:52 -0000 1.10.2.1
@@ -22,6 +22,8 @@
import org.apache.jmeter.testelement.AbstractTestElement;
import org.apache.jmeter.testelement.property.StringProperty;
+import org.apache.jorphan.logging.LoggingManager;
+import org.apache.log.Logger;
// Mark Walsh, 2002-08-03, add metadata attribute
// add constructor Argument(String name, Object value, Object metadata)
@@ -36,6 +38,7 @@
* @version $Revision$
*/
public class Argument extends AbstractTestElement implements Serializable {
+ private static Logger log = LoggingManager.getLoggerForClass();
/** Name used to store the argument's name. */
public static final String ARG_NAME = "Argument.name";
No revision
No revision
1.17.2.1 +7 -2 jakarta-jmeter/src/core/org/apache/jmeter/testelement/TestPlan.java
Index: TestPlan.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/testelement/TestPlan.java,v
retrieving revision 1.17
retrieving revision 1.17.2.1
diff -u -r1.17 -r1.17.2.1
--- TestPlan.java 12 Jul 2005 20:50:28 -0000 1.17
+++ TestPlan.java 18 Aug 2005 17:21:52 -0000 1.17.2.1
@@ -88,6 +88,11 @@
// setSerialized(false);
setProperty(new CollectionProperty(THREAD_GROUPS, threadGroups));
}
+
+ public void prepareForPreCompile()
+ {
+ getVariables().setRunningVersion(true);
+ }
/**
* Fetches the functional mode property
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org