REST stands for REpresentational State Transfer. REST Assured is a java library used for testing and validating the Restful Web Services. Rest-Assured library also provides the ability to validate the HTTP Responses received from the server. For example we can verify the Status code, Status message, Headers and even the Body of the response. This makes Rest-Assured a very flexible library that can be used for testing.
Advantage of using Rest Assured:
Information related to the REST Assured Java library leads us to believe in its dependability. The primary reasons why we need REST Assured are as follows:
It is an attractive option for API automation because it is an open-source library with a thriving development community.
It was challenging to test APIs using dynamic languages like Ruby and Groovy.
REST service testing and validation are more complex in Java. It gets more straightforward and more effortless with REST Assured. Sending encrypted HTTPS requests with a few lines of Java code is a breeze using this module.
Automating the backend using rest assured provides reasonable confidence once the fundamentals of API and integration testing have been mastered. As a result, we will have extra time for front-end testing.
Steps to create project for API Testing: First create a maven project & add dependencies in pom.xml.
Maven dependency for rest assured <dependency> <groupId>io.rest-assured</groupId> <artifactId>rest-assured</artifactId> <version>4.3.0</version> <scope>test</scope> </dependency>
Maven dependency for testng <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>7.1.0</version> <scope>test</scope> </dependency>
How the Rest Assured Works?
1. Create an HTTP request with all the details
2. Send the request over the network
3. Validate the received Response
An HTTP request consists of the following
The Request URL is the unique address used to make a request. URL
consists of the Base URL, Resource, Query Parameters, or Path Parameters.
HTTP methods (GET, PUT, POST, PATCH and DELETE) and these methods can be mapped to CRUD operations.
GET retrieves the resource at a specified URI.
PUT updates a resource at a specified URI. Also be used to create a new resource at a specified URI. Replaces the entire product entity.
PATCH support partial updates.
POST creates a new resource.
DELETE deletes a resource at a specified URI.
Using the request header, the client can send additional information to the server about the request as well as the client itself. Additionally, there can be either zero or more headers in the request, which can define the content type, authorization specification, Cookie information, etc.
The request body/Payload sends additional information to the server to fetch data from the request correctly. The payload is used only with the requests that alter the existing resource or create new ones. It can either be in the form of XML or JSON.
The HTTP Response consists of the status code, Headers and Response body.
HTTP status codes help us to understand the status of the response quickly.
100–199 - Informational: The request received and process continuing
200–299 - Success: The request succeeded
300–399 - Redirection: The request is redirecting to another URL
400–499 - Client Error: An error occurred from client-side
500–599 - Server Error: An error occurred from the server-side
Disadvantages of REST Assured:
The following are some of the issues with the REST Assured library:
It is not possible to perform specific testing of SOAP APIs using this tool.
To use this package, the user must have a solid understanding of Java programming.
Rest Assured does not have any kind of built-in reporting functionality.
REST ASSURED is a very useful JAVA library to automate REST API’s irrespective of the language. It has many inbuilt options. Also, it has many versions with interesting functions, options included in it. Although, there are some famous REST API testing tools, Postman and Rest Assured are currently in the spotlight. However, using REST Assured for REST API automation testing is more reliable as compared to Postman. But it demands professional developers.