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