Load Testing with Apache JMeter | Enhancing the Test Plan

Enhancing the Test Plan

You have now seen the basic elements used in a test plan. We added a sampler and some listeners, but as could be seen in the menus on the last page there are many other elements that may be added to a test plan. The elements are logically placed in a set of groups:




These are the elements that send requests to the servers. There are samplers for these request types:



They collect the results of your runs. You can select among graphical, tabular, single request views. The results can also be saved in a named file.


Used to insert delays between the requests. They are needed to make your test more realistic.

Logic Controllers

If the requests you have defined in your test plan should be executed depending on some logic, then you need the logic controllers. They are like the if-then-else and loop structures in Java or any other programming language.

Configuration Elements

They work with the samplers by adding common information about the requests.


Let you check if the responses you get contain the expected data or are received within a given amount of time.

Let’s add a couple of new elements to the test plan from above.

When many HTTP requests are defined it’d be nice if you could define the server name, port number, and common path only once. This is what the Configuration Element HTTP Request Defaults is used for:

For our example we add localhost and port 8080:


Now we can add another HTTP request, namely the "Date" jsp example that’s part of Tomcat. It has the URL: http://localhost:8080/examples/jsp/dates/date.jsp. The procedure for adding an HTTP request was explained above, so I won’t show it again. You don’t have to add "localhost" to the request—it’s already in the HTTP Request Defaults element. Due to a bug in JMeter 1.8 you’ll have to add the port number 8080 though, even if it is given in the HTTP Request Defaults element. Give the two HTTP requests different names so they can be distinguished. Your test plan now looks like this: