5 min read

JMeter is a 100% pure Java desktop application. JMeter is found to be very useful and convenient in support of functional testing. Although JMeter is known more as a performance testing tool, functional testing elements can be integrated within the Test Plan, which was originally designed to support load testing. Many other load-testing tools provide little or none of this feature, restricting themselves to performance-testing purposes. Besides integrating functional-testing elements along with load-testing elements in the Test Plan, you can also create a Test Plan that runs these exclusively. In other words, aside from creating a Load Test Plan, JMeter also allows you to create a Functional Test Plan. This flexibility is certainly resource-efficient for the testing project.

In this article by Emily H. Halili, we will give you a walkthrough on how to create a Test Plan as we incorporate and/or configure JMeter elements to support functional testing.

Preparing for Functional Testing

JMeter does not have a built-in browser, unlike many functional-test tools. It tests on the protocol layer, not the client layer (i.e. JavaScripts, applets, and many more.) and it does not render the page for viewing. Although, by default that embedded resources can be downloaded, rendering these in the Listener | View Results Tree may not yield a 100% browser-like rendering. In fact, it may not be able to render large HTML files at all. This makes it difficult to test the GUI of an application under testing.

However, to compensate for these shortcomings, JMeter allows the tester to create assertions based on the tags and text of the page as the HTML file is received by the client. With some knowledge of HTML tags, you can test and verify any elements as you would expect them in the browser.

It is unnecessary to select a specific workload time to perform a functional test. In fact, the application you want to test may even reside locally, with your own machine acting as the “localhost” server for your web application. For this article, we will limit ourselves to selected functional aspects of the page that we seek to verify or assert.

Using JMeter Components

We will create a Test Plan in order to demonstrate how we can configure the Test Plan to include functional testing capabilities. The modified Test Plan will include these scenarios:

      1.

Create Account

    —New Visitor creating an Account
      2.

Login User

    —User logging in to an Account

Following these scenarios, we will simulate various entries and form submission as a request to a page is made, while checking the correct page response to these user entries. We will add assertions to the samples following these scenarios to verify the ‘correctness’ of a requested page. In this manner, we can see if the pages responded correctly to invalid data. For example, we would like to check that the page responded with the correct warning message when a user enters an invalid password, or whether a request returns the correct page.

First of all, we will create a series of test cases following the various user actions in each scenario. The test cases may be designed as follows:

CREATE ACCOUNT

Test Steps

Data

Expected

1

Go to Home page.

www.packtpub.com

Home page loads and renders with no page error

2

Click Your Account link (top right).

User action

1. Your Account page loads and renders with no page error.2. Logout link is not found.

3

No Password: – Enter email address in Email text field.- Click the Create Account and

Continue button.

email=EMAIL

1. Your Account page resets with Warning message-Please enter password.2. Logout link not found.

4

Short Password: – Enter email address in Email text field.- Enter password in Password text field.- Enter password in

Confirm Password text field.

– Click Create Account and

Continue button.

email=EMAILpassword=SHORT_PWD

confirm password=SHORT_PWD

1. Your Account page resets with Warning message-Your password must be 8 characters or longer.2. Logout link is not found.

5

Unconfirmed Password: – Enter email address in Email text field.- Enter password in Password text field.- Enter password in

Confirm Password text field.

– Click Create Account and

Continue button.

email=EMAILpassword=VALID_PWDconfirm password=INVALID_PWD

1. Your Account page resets with Warning messagePassword does not match.2. Logout link is not found.

6

Register Valid User: – Enter email address in Email text field.- Enter password in Password text field.- Enter password in

Confirm Password text field.

– Click Create Account and

Continue button.

email=EMAILpassword=VALID_PWDconfirm password=VALID_PWD

1. Logout link is found.2. Page redirects to User Account page.3. Message found: You are registered as: e:<EMAIL>.

7

Click Logout link.

User action

1. Logout link is NOT found.

 

 

LOGIN USER

Test Steps

Data

Expected

1

Click Home page.

User action

1. WELCOME tab is active.

2

Log in Wrong Password: – Enter email in Email text field- Enter password at Password text field.- Click Login button.

email=EMAILpassword=INVALID_PWD

1. Logout link is NOT found.2. Page refreshes.3. Warning message-Sorry your password was incorrect appears.

3

Log in Non-Exist Account:- Enter email in Email text field.- Enter password in Password text field.- Click Login button.

email=INVALID_EMAILpassword=INVALID_PWD

1. Logout link is NOT found.2. Page refreshes.3. Warning message-Sorry, this does not match any existing accounts. Please check your details and try again or open a new account below appears.

4

Log in Valid Account:- Enter email in Email text field.- Enter password in Password text field.- Click Login-button.

email=EMAILpassword=VALID_PWD

1. Logout link is found.2. Page reloads.3. Login successful message-You are logged in as: appears.

5

Click Logout link.

User action

1. Logout link is NOT found.

 

 

3 COMMENTS

  1. Good resource for starters like me who wants to do functional testing with Jmeter. Could please write another blog for implementing these test scenarios in Jmeter?

    Thanks!

LEAVE A REPLY

Please enter your comment!
Please enter your name here