Differences between revisions 1 and 2
Revision 1 as of 2005-03-22 05:37:03
Size: 1435
Editor: anonymous
Comment: missing edit-log entry for this revision
Revision 2 as of 2009-09-20 21:56:29
Size: 1435
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
'''Navigation trail:''' ["JMeterProjectPages"] - ["JMeterDevelopment"] - ["JMeterDevelopment"]/DeveloperDocumentation '''Navigation trail:''' [[JMeterProjectPages]] - [[JMeterDevelopment]] - [[JMeterDevelopment]]/DeveloperDocumentation
Line 15: Line 15:
   * Next a ["JMeterEngine"] is created, and the tree is delivered.    * Next a [[JMeterEngine]] is created, and the tree is delivered.
Line 19: Line 19:
   * Then, for each ThreadGroup, the appropriate number of ["JMeterThread"] objects are created and handed the TestTree. However, the tree is cloned (a shallow cloning), and every element in the tree that implements PerThreadClonable is cloned.
   * ["JMeterThread"] takes over at that point.
   * Then, for each ThreadGroup, the appropriate number of [[JMeterThread]] objects are created and handed the TestTree. However, the tree is cloned (a shallow cloning), and every element in the tree that implements PerThreadClonable is cloned.
   * [[JMeterThread]] takes over at that point.

Navigation trail: JMeterProjectPages - JMeterDevelopment - JMeterDevelopment/DeveloperDocumentation


This page describes what happens when you start a test:

Short:

  • The GUI tree is converted into a Test Element tree.
  • The Engine compiles the test plan.
  • The Engine starts the necessary threads and handles control to them.

Long:

  • First, the GUI-tree is converted into a non-GUI-tree of equivalent Test Elements.
  • Next a JMeterEngine is created, and the tree is delivered.

  • The Engine then uses org.apache.jmeter.engine.PreCompiler (A HashTreeTraverser) to do some processing on the tree prior to the tree being cloned for each thread that will be run. In other words, the PreCompiler's changes will affect every thread. The PreCompiler, at this time, only replaces user-defined variables with their actual values (from the TestPlan GUI).

  • Then, all the ThreadGroup branches are extracted from the tree.

  • All TestListeners are found in the tree (TestListener is a specific interface. Each TestListener will be notified when the test starts).

  • Then, for each ThreadGroup, the appropriate number of JMeterThread objects are created and handed the TestTree. However, the tree is cloned (a shallow cloning), and every element in the tree that implements PerThreadClonable is cloned.

  • JMeterThread takes over at that point.

JMeterTestExecution (last edited 2009-09-20 21:56:29 by localhost)