Sunday, 17 June 2018

API Testing-Rest Assured

package framework.RestAPI;

import org.testng.Assert;
import org.testng.annotations.Test;

import com.jayway.restassured.http.ContentType;
import com.jayway.restassured.response.Response;
import com.relevantcodes.extentreports.LogStatus;

import framework.TestBase.TestBase;
import framework.configReader.ObjectRepo;

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

public class weatherGetRequest extends TestBase {

@Test(priority=1)

public void weatherGetStatusCode(){
Response resp=
       given().
       param("q","London").
       param("appid","b6907d289e10d714a6e88b30761fae22").
       when().
       get("http://samples.openweathermap.org/data/2.5/weather");
     

int statuscode=resp.getStatusCode();
Assert.assertEquals(statuscode, 200);
TestBase.logger.info("Get the Status code");
TestBase.extentlogger = TestBase.extent.startTest("Verify the status code -->passTest");
TestBase.extentlogger.log(LogStatus.PASS, "Test Case Passed is passTest");

//System.out.println(resp.getStatusCode());


}
@Test(priority=2)
public void getResponse(){

Response resp=
       given().
       parameter("q","London").
       parameter("appid","b6907d289e10d714a6e88b30761fae22").
       when().
       get("http://samples.openweathermap.org/data/2.5/weather");
String Expected="light intensity drizzle";
String Actual=resp.then().contentType(ContentType.JSON).extract().path("weather[0].description");
Assert.assertEquals(Actual,Expected);
TestBase.logger.info("check response data");
TestBase.extentlogger = TestBase.extent.startTest("Check the response data -->passTest");
TestBase.extentlogger.log(LogStatus.PASS, "Test Case Passed is passTest");

// System.out.println(resp.asString());
}

@Test(priority=3)
public void transferLonLat(){

Response resp=given().
       parameter("q","London").
       parameter("appid","b6907d289e10d714a6e88b30761fae22").
       when().
       get("http://samples.openweathermap.org/data/2.5/weather");

   String respbyid =   resp.then().
       contentType(ContentType.JSON).
       extract().
       path("weather[0].description");

System.out.println(respbyid);





String lon=String.valueOf(resp.then().
contentType(ContentType.JSON).
extract().
path("coord.lon"));
System.out.println(lon);

String lat=String.valueOf(resp.then().
contentType(ContentType.JSON).
extract().
path("coord.lat"));
System.out.println(lat);



String respbycoord=given().
parameter("lat",lat ).
parameter("lon", lon).
parameter("appid","b6907d289e10d714a6e88b30761fae22").
get("http://samples.openweathermap.org/data/2.5/weather").
then().
contentType(ContentType.JSON).extract().
path("weather[0].description");

System.out.println(respbycoord);

try{
Assert.assertEquals(respbyid, respbycoord);
TestBase.logger.info("Verify longitude and latitude");
TestBase.extentlogger = TestBase.extent.startTest("Check the longitude and latitude -->passTest");
TestBase.extentlogger.log(LogStatus.PASS, "Test Case Passed is passTest");
}
catch(Exception e){
TestBase.logger.info("Verify longitude and latitude");
TestBase.extentlogger = TestBase.extent.startTest("Check the longitude and latitude -->passTest");
TestBase.extentlogger.log(LogStatus.FAIL, "Test Case failed");
}

}

}



JARS needed


<dependency>
    <groupId>com.jayway.restassured</groupId>
    <artifactId>rest-assured</artifactId>
    <version>2.9.0</version>
    <scope>test</scope>
</dependency>


<!-- https://mvnrepository.com/artifact/com.jayway.jsonpath/json-path -->
<dependency>
    <groupId>com.jayway.jsonpath</groupId>
    <artifactId>json-path</artifactId>
    <version>2.4.0</version>
</dependency>

<!-- https://mvnrepository.com/artifact/com.jayway.restassured/json-schema-validator -->
<dependency>
    <groupId>com.jayway.restassured</groupId>
    <artifactId>json-schema-validator</artifactId>
    <version>2.2.0</version>
</dependency>
    
  </dependencies>

No comments:

Post a Comment