Saturday 3 August 2019

Rest API Automation in Java - Get Method

In this post, we will learn to automate REST APIs using Rest-Assured library and TestNG. Rest Assured is a Java library using which we can test and validate the REST web services. Although Rest-assured provides its own validating mechanism(assertions for validating response) but we can combine Rest-assured with TestNG to get the best of both the libraries.

During the course of this tutorial, we will be using the following-
  • Sample Rest API to be used in Automation - RestCountries API
  • Rest-Assured and its dependencies (https://code.google.com/p/rest-assured/wiki/Downloads) (Remember to download and add to class path, the other dependencies also). POM dependencies for the Rest Assured and its dependencies-
    <dependency>
        <groupId>com.jayway.restassured</groupId>
        <artifactId>rest-assured</artifactId>
        <version>2.3.4</version>
    </dependency>
    
    <dependency>
     <groupId>org.codehaus.groovy</groupId>
     <artifactId>groovy-all</artifactId>
     <version>2.3.5</version>
    </dependency>
    
  • TestNG as testing framework

Rest API Get Method Automation in Java

In the following example, we are using the Rest-assured library's "get" method to make an HTTP Get request to the restcountries.eu API- http://restcountries.eu/rest/v1/name/{countryName} that fetches the capital of a country. Then we will fetch the response in JSONArray and use TestNG's assert method for validation.

You can also download the RestAPI Automation sample script from here.

package RestAPITest;

import static com.jayway.restassured.RestAssured.get;

import org.json.JSONArray;
import org.json.JSONException;
import org.testng.Assert;
import org.testng.annotations.Test;

import com.jayway.restassured.response.Response;

public class RestTest {

 @Test
 public void getRequestFindCapital() throws JSONException {
  
  //make get request to fetch capital of norway
  Response resp = get("http://restcountries.eu/rest/v1/name/norway");
  
  //Fetching response in JSON
  JSONArray jsonResponse = new JSONArray(resp.asString());
  
  //Fetching value of capital parameter
  String capital = jsonResponse.getJSONObject(0).getString("capital");
  
  //Asserting that capital of Norway is Oslo
  Assert.assertEquals(capital, "Oslo");
 }
 
}

No comments:

Post a Comment