JMeter 1.6 has a new UI layout. The window is divided into two sections. On the left is a tree which represents a test configuration. The tree represents both the hierarchical and ordered nature of the test. A test can be made up of one or many subtests and each of these subtests may have a particular ordering. The main display is on the right side of the window. Whenever an element in the tree is selected, its control panel is shown in the main display allowing you to enter your test data. When a visualizer is selected the main display will contain the visualizer's view of the current test.

Most functions in the UI are available from popup menus that appear when you right-click on an element in the test tree.

The test configuration tree begins with two elements - TestPlan and WorkBench . The TestPlan element will contain all the elements which make up your test. The WorkBench is simply an area to store test elements while you are in the process of constructing a test.

A TestPlan consists of one or more ThreadGroups . A ThreadGroup is a root element (it can not be nested) which may contain timers , listeners , controllers , Assertions , and config elements . A ThreadGroup also defines the number of threads available to the threadgroup.

  • A timer is a simple element that controls how long JMeter should delay between each test sample when it runs. This allows JMeter to simulate human actions more closely. Timer element's are leaves in the test tree they can not contain sub-elements.
  • A listener receives information about response data while JMeter runs. For instance, during testing of a website, a listener receives and collects sample data that indicates how many milliseconds it took the web server to respond to each request. Normally, these listeners are visualizers (represent the data visually in the main window), or reporters (store the data to file). Listeners are also leaves in a test configuration tree.
  • A controller is an element that controls the flow of test samples. It also controls the process by which test samples are created. Controllers implement JMeter's various testing protocols. Logic Controllers may have other controllers and/or config elements as sub-elements, and Samplers can only have config elements or assertions as sub-elements.
  • An Assertion states a requirement that the server's response must satisfy. For instance, an Assertion element can be configured to assert that response text from a web server will include a particular string. If it does not, it will be reported as a failed sample by the assertion reporter.
  • A Config Element represents a coherent set of information that is usually specifically targeted to a particular protocol or controller. For instance, setting up a database test requires three config elements - one to configure the basic information about the database (what host, what driver, login and password to use), one to configure the SQL query to be tested, and one to configure the pool of database connections (how many connections to store in pool, etc). Config Elements are leaves in the test configuration tree.

As a user, you create elements in the tree, and start your test when ready. When you start the test, JMeter "compiles" your test script (note: this doesn't refer to an executable script, as in Python or Perl, but to the data in the hierarchical tree). All elements in the tree are added up - meaning child objects are added to their parent objects until a single TestPlan object is created. A JMeterEngine is then created, and the TestPlan sends all of its ThreadGroups to the engine. The engine creates threads, and each thread iterates through the test cases.

Copyright © 1999-2001, Apache Software Foundation