Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

This guide aims at enabling the readers to be able to configure and load test multiple API’s with the ease of Apache JMeter tool. Apache JMeter is an open-source tool, which allows us to perform cross-platform testing, quick scope testing. It offers a lot of plugins and also enables load testing and stress testing.

What is an API ?

API is the acronym for Application Programming Interface, which is a software intermediary that allows two applications to talk to each other. Each time you use an app like Facebook, send an instant message, or check the weather on your phone, you’re using an API.

APIs are sometimes thought of as contracts, with documentation that represents an agreement between parties: If party 1 sends a remote request structured a particular way, this is how party 2’s software will respond.

Because APIs simplify how developers integrate new application components into an existing architecture, they help business and IT teams collaborate. Business needs often change quickly in response to ever shifting digital markets, where new competitors can change a whole industry with a new app. In order to stay competitive, it's important to support the rapid development and deployment of innovative services. Cloud-native application development is an identifiable way to increase development speed, and it relies on connecting a microservices application architecture through APIs.

Now that you have a slight knowledge about what an API is, let us advance with the configuration of Apache JMeter.

Configuring Apache JMeter:

1) Updating Packages

If you are logged into Ubuntu 20.04, then run the following command to update your base system with the latest available packages. Windows users can skip this step.

sudo apt-get update -y

2) Install Java

Apache JMeter is a Java based application. Therefore, it requires Java to be installed in your system. Java can be downloaded from the following link:

JDK for windows

JDK for linux

3) Install Apache Web Server

Apache Web Server is required to start the Apache service, which is responsible for accepting directory (HTTP) requests from Internet users and sending them their desired information in the form of files and Web pages.

Windows users can install the Apache Web Server from the following link:

Apache Web Server for windows

Linux users can install it with the following command:

sudo apt-get install apache2 -y

After installation of the Apache Web Server, start the Apache service and enable it to start at system reboot using the following commands:

systemctl start apache2
systemctl enable apache2

Check if the service is running properly:

systemctl status apache2

4) Install and Configure Apache JMeter

You can install Apache JMeter (version 5.5 which is the latest) directly from the Apache JMeter Official Website

Windows users can follow the following link to install Apache JMeter:

Apache JMeter for windows

Linux users can directly download the zip file using the following command:

https://downloads.apache.org//jmeter/binaries/apache-jmeter-5.5.zip

Once downloaded, unzip the downloaded file using the following command:

unzip apache-jmeter-5.5.zip

Change the directory to the bin in JMeter:

cd apache-jmeter-5.5/bin

Now start the JMeter application with the following command:

./jmeter

Testing The Api’s Using JMeter:

Once the JMeter application is running perfect, the interface will somewhat look like this depending upon the version you are using.

It divides the home window into two sections: the left side has all the test plan elements, and on the right side, all the configurations of that element are added. 

As you are on the test plan element, you can see the configurations of the same.

  • Right-click on the test plan

  • Select the add option

  • Then in the menu that appears, select the threads option and then thread groups

Here, the number of threads refers to the number of users. The ramp-up period in seconds option states the time gap between the users' hits. There is a loop count where you can choose how many times the test will run for the number of users, and also, you can select the test to run infinite times. 

There is also a scheduler here to help you schedule the test start-time and end-time.

For the purpose of this tutorial, let's set everything to one.

Now, select some sample APIs, as given below;

  • Go to your browser 

  • Search for “some sample rest API for testing”

  • Open the first link http://reqres.in

Let’s create and run GET, POST, PUT, and DELETE Rest API requests in JMeter in the demo. 

So, choose the first link: List Users. 

  • Here, click on the request link

  • Open the link that appears in the new tab

  • Identify the URL for this API

  • Copy this URL and open the JMeter window

Then in the JMeter window, do the following:

  •  Right-click on the Thread group

  • Navigate to “add”

  • In the box that appears, select “samplers”

You can see the types of requests that JMeter can work on

  • Choose the HTTP request. 

Here, you will have to give the address to some home pages or websites

  • In the Server Name or IP box, give the paste the GET API request URL 

  • In the Protocol box, put "HTTPS"

If the URL in the protocol was HTTP, this box would have been left empty. In the URL, put the URL link; remember not to put any slashes in the IP Address. Also, anything after the URL should be put in the path.

  • Now, put the path from the URL in the path box

Next, you must take part of the URL, beginning with the “question mark” and use it to assign the parameters. This is required since it is the GET API type.

  • Add the name in the parameters

  • Give the name as page and value as 2

  •  Name this HTTP Request as GetApi

After this HTTP request is ready, perform the test on it. To determine what the results of the test will be, add some listeners.

  • Right-click on the Thread group

  • Go to listener options

  • In the box, check the different types of reports that JMeter provides

  • For now, Select two "view results tree" and “view results in table"

  • Then save the test and run it

Simply click on the green button to run the test.

After running the test, it's time to check the results:

  • Go to the "view results tree"

The green status shows that the test was successful. 

  • Then go “view results in a table”

The green status again shows the test was successful. 

Since the number of threads and loop was denoted as one - both at the entry in both the results, the test result has come out accordingly.

Now, try one more thing:

  • Go to the thread group 

  • Change the number of threads to be 10

  • Run the test

After running the test, check the "results in the table" and see the testing being performed. This can be seen in case "view results in the table" is available too.

In the view results tree, you can click on a request and see different information. Here you can see the sample start, load time, latency error, etc. In the "view results in table," window, you will be able to see all the information in a tabular format.

You can also see the response data in the above image. This is the same data available when you copied the URL from the browser. Furthermore, the response headers and the request placed can also be checked. 

Now, when you are done with the GET API request, let's add the second request that is the POST request.

  • Add an HTTP request again by going to the sampler in the thread group

  • Come back to the browser window

  • Click on the POST API option 

  • Open the request URL in a new window

  • Go to this window and copy the URL

  • Come back to the JMeter window

  • Rename this HTTP request as Post API 

  • Then paste the URL in the server name or IP box 

  • Place HTTP in the protocol box, address in the Server or IP address box, and path in the path box

  • And in the HTTP Request drop-down, select the POST option this time

  • Navigate to the parameter part

  • Here, select the body data option and add body 

For adding the body:

  • Go back to the browser window

  • Copy the body from here

  • Come back to the JMeter window

  • Paste the body here

Now, when the test is all set it’s time to check the output.

  • Go to the two listeners and clear the previous output

  • Then save the test and run it

  • Now you can see the two tests since the thread count is one

Making the thread count 10 again, you can see the test running a required number of times, 20 times. Furthermore, the information about different requests that include other parameters like latency, errors, etc., can be accessed.

Now, let's move on to the third API request, the PUT request.

  • Go back to the browser

  • Click on the PUT request

  • Open the requests in the new tab

  • Copy the URL

  • Come back to the JMeter window

  • Make a new HTTP request like the previous two times

  • Rename this HTTP request as Put API

  • Paste the URL in the server name or IP box 

  • Put HTTP in the protocol box, address in the Server or IP address box, and path in the path box 

  • And in this HTTP Request drop-down, select the PUT option this time

Here too, you will have to add body data. 

  • Go back to the browser window

  • Copy the body from here

  • Coming back to the JMeter window, select the body data option and paste the body here.

Now, after it sets the test, run the test in the case of the previous two APIs.

  • Go to the two listeners and clear the previous output 

  • Make the thread count as one

  • Save the test and run it

Again make the thread count as 10 and see what happens.

  • You can see the test running a required number of times

  • And a lot of information can be checked again, as in the previous cases

Now, let's add the last API request that is the DELETE request.

  • Go back to the browser

  • Click on the DELETE request

  • Open the requests in the new tab 

  • Copy the URL

  • Come back to the JMeter window

  • Make a new HTTP request

  • Rename this HTTP request as Delete API 

  • Paste the URL in the server name or IP box 

  • Put HTTP in the protocol box, address in the Server or IP address box, and path in the path box

  • And in this HTTP Request drop-down, select the Delete option this time

Here you do not have to add anything in the parameters section. 

  • So, go to the two listeners and clear the existing information

  • Save the test and run it

Since the number of threads was not 1 this time, the test can be seen running the required number of times. You can see the information for any API request by clicking on it.

Hence, you can now create and perform API Testing for different API requests in JMeter

Congratulations for making it through this guide. By now, you would have understood everything you need to know about JMeter API Testing. In the beginning, you learned what an API is, then you learned about the configuration of Apache JMeter. Then finally, you understood the process of performing API Testing using JMeter with a hands-on demo.

Additional Resources:

In case you are stuck somewhere, you can refer the following tutorials.

Edureka JMeter Tutorial Documentation

Edureka JMeter Video Tutorial

SimpliLearn Documentation

  • No labels