HTTP Request Plan in JMeter – Advanced (Series)

In our last post we saw creating a Simple HTTP Request plan in JMeter, where we just created a HTTP Request Default with some HTTP Request and Listeners. But we did not used any kind of

  • Logic Controllers (Looping, Conditions)
  • Assertions
  • Assertion Validations etc

In this post, we are going to deal with little advanced JMeter Test Plan.


Here is our test plan

Web Site http://www.seleniumhq.org/
Number of Users 1
No of times Iteration/User 1
Authentication No
Parameters used No
Assertions
  • Response Assertion
  • Duration Assertion
Page Request Criteria per User
  • Execute home page only one time, but all other subsequent pages for 5 times

 

As you can see from the above test plan, we have additional items like Assertions and Page request criteria per user.

Creating Test Plan

Let’s first understand what kind of Assertions and page request criteria/user we are going to create in this test plan.

Assertion

We are going to add Response Assertion (Assertion component) and Duration Assertion for certain request, here Response Assertion is used to check if the page response has certain expected value, whereas Duration Assertion is to tell whether the given page loads within expected time frame.

Page Request Criteria per user

We have a criteria here that, we need to execute home page only once for a given user, but need to execute all other subsequent request for 5 times. Which means, we need to create Logic controllers.

Let’s start creating the plan, but here I am not going to go each and every aspect one by one, rather I can show the complete detail in one shot as shown below

Let’s start exploring the above plan in detail.

Loop Controller

The purpose of Loop Controller (Logic Controller) is to loop single or multiple requests for given amount of time.

As we have the criteria to execute all request (except home page) for 5 times, I am adding a Loop Controller, with Loop count as 5.

Once Only Controller

The purpose of Once only controller is to execute any given request ONLY ONCE even if it is under a loop controller, which satisfies our criteria of home page.

Response Assertion

I am checking the download page if its title has Download in the page using Response Assertion as shown below

Duration Assertion

I wanted to check if the download page is loading with certain time frame as shown below

Assertion Results

I would like to see the result of all the Assertions I have added in the pages, hence we need to add Assertion Result Listener.

Reports

Finally lets execute the test and check the reports for the two new criteria we added in our Test plan

Assertion

As you can see above there was no problem with Response assertion, since the title was download, but the Duration assertion failed in 4 request except only one request as highlighted above, which means the page loading time is slow than we expected.

Page Request Criteria per user

We need to execute all page 5 times except home page, lets see that in View Result Tree Listener as shown below

As you can see above, home page executed only once, but all other requests executed for 5 times. Note that Docs request passed only once and failed 4 times due to Duration Assertion failure, which is also listed in the view result tree.

Bonus Topic

I tried to put the Loop controller within Simple Controller and tried to execute the same test (Since as we know simple controller is just to group multiple requests of same type) but the end result was astonishing, the loop controller was not working within Simple controller, instead of executing requests for 5 times, it executed only once.

 

Download

You can download the above JMeter Test plan from here

Please leave your comments and thanks for reading !!!

Thanks,
Karthik KK

4 comments

Leave a Reply

Your email address will not be published. Required fields are marked *