Languege/Java & Spring / / 2023. 5. 17. 16:02

RestAssured session 사용시 default value 저장

RestAssured로 api 테스트시 로그인 session을 매번 Cookie를 요청마다 실어주어야 하는지,
다른 방법은 없는지 궁금증이 생겼다.

그렇게 RestAssured 공식 문서와 구글링을 통해 알아낸 방법은 아래와 같다.
.cookie("JSESSIONID", sessionId)

 


 

🎈 RestAssured 세션 기본값 설정하는 방법

방법은 아주 간단하다.

RestAssured.sessionId = 설정할 세션id 와 같이 지정하면 끝이다.

var response = 로그인요청(request);
RestAssured.sessionId = response.cookies().get("JSESSIONID");

 


✨ RestAssured JWT(Oauth2) 기본값 설정하는 방법

현재 프로젝트는 폐쇄망에서 운영되는 프로젝트기도 하여 세션을 사용하고 있는데

jwt를 사용할때나 oauth를 이용할때는 다른 방법을 통해 사용해야 한다.

보통 token의 정보는 header에 넣음으로 아래와 같이 설정이 가능하다.

var response =
      given()
          .headers(
              "Authorization",
              "Bearer " + bearerToken,
              "Content-Type",
              ContentType.JSON,
              "Accept",
              ContentType.JSON)
          .when()
          .get(url)
          .then()
          .contentType(ContentType.JSON)
          .extract();

 

하지만 위와 같은 코드도 매번 넣을 수 없음으로 아래와 같이 로그인이 완료된 후 설정하면 default value로 알아서 이후 요청마다 api에 실려서 테스트가 가능하다.

Response tokenResponse = getToken(code);
String accessToken = parseForAccessToken(tokenResponse);
RestAssured.oauth2(accessToken);

 

자세한 RestAssured oauth2 사용법은 아래 블로그에 자세히 소개하고 있음으로 생략한다.

https://devqa.io/rest-assured-oauth2-workflow-examples/

 

Using REST-assured to Test OAuth 2.0 flow Examples

OAuth 2.0 provides four different flows, but the main goal of each flow is to obtain an access_token and use it to access protected resources.The f...

devqa.io

위 사이트에서는 다양한 oauth2 인증방법에 따른 방법을 상세히 설명해주고 있다.

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유