본문 바로가기

개발

Rest Assured Start~!

728x90

 

Rest Assured : REST API 테스트를 지원하는 라이브러리로 HTTP 의 POST, GET, PUT, DELETE, OPTIONS, PATCH 및 HEAD 를 지원한다
(참조 : http://rest-assured.io , https://github.com/rest-assured/rest-assured/wiki/GettingStarted)

 

주요기능

  1. 쉬운 Rest API호출
  2. JasonPath lib를 활용하여 Jason data의 활용/검증
  3. Input변수로 다양한 Object Type사용 가능(Map, VO타입 class, String등)

 

Rest Assured 환경 구성

2.xx 버전까지는 com.jayway.restassured Group 이었지만 3.x 버전부터는 io.rest-assured 로 Group 이 변경됨

<!-- https://mvnrepository.com/artifact/io.rest-assured/rest-assured -->
<dependency>
  <groupId>io.rest-assured</groupId>
  <artifactId>rest-assured</artifactId>
  <version>3.0.2</version>
</dependency>

 

 

Rest Assured 특징 

  1. Syntactic Sugar 문법 지원
  2. 절킨 문법(Given-When-Then Pattern)을 이용한 코드 작성
.given()
        .param(“key1", "value1")
        .param(“key2", "value2")
.when() 
        .post("/somewhere")
.then()
        .body(contaninsString(“OK”)

 

 

Rest Assured 코드 예제

   * 예제 1번 : Cookie 를 셋팅하여 Rest API 를 호출하는 예제

RequestSpecBuilder requestBuilder = new RequestSpecBuilder();
requestBuilder.addCookie("my_cookie", "test_Cookies_Setting");
requestBuilder.setContentType("application/json");
RestAssured.requestSpecification = requestBuilder.build();
RestAssured
    .given()
    .when()
        .get("/forecast/cookies")
    .then()
        .statusCode(200)
        .extract().response();

 

   * 예제 2번 : Get Parameter 로 Rest API 를 호출하는 예제(/forecast?GPSLocationX=51.507253&GPSLocationY=-0.127755)

RestAssured
    .given()
        .param("GPSLocationX", "51.507253")
        .param("GPSLocationY", "-0.127755")
	.log().all()
    .when()
        .get("/forecast")
    .then()
        .statusCode(200)
        .body("currently.windSpeed", is(12.34f));