[java] TestNG를 활용한 HTTP 요청 테스트

TestNG는 Java 기반의 테스팅 프레임워크로, HTTP 요청을 테스트하는데 유용하게 활용될 수 있습니다. 특히, 웹 애플리케이션의 API 테스트를 자동화하고자 할 때 많이 사용됩니다.

의존성 추가

테스트를 진행하기 위해 먼저 TestNG를 의존성으로 추가해야 합니다. Maven을 사용하는 경우 pom.xml 파일에 다음과 같이 의존성을 추가합니다.

<dependencies>
  <dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>7.1.0</version>
    <scope>test</scope>
  </dependency>
</dependencies>

Gradle을 사용하는 경우 build.gradle 파일에 다음과 같이 의존성을 추가합니다.

testImplementation 'org.testng:testng:7.1.0'

의존성을 추가한 후 프로젝트를 업데이트해주세요.

HTTP 요청 테스트 작성

이제 HTTP 요청을 테스트하기 위한 테스트 클래스를 작성해보겠습니다. 아래의 예제 코드를 참고하세요.

import org.testng.Assert;
import org.testng.annotations.Test;
import io.restassured.RestAssured;
import io.restassured.response.Response;

public class HttpRequestTest {
  
  @Test
  public void testGetRequest() {
    Response response = RestAssured.get("https://api.example.com/users");
    int statusCode = response.getStatusCode();
    Assert.assertEquals(statusCode, 200, "Expected status code is 200");
  }
  
  @Test
  public void testPostRequest() {
    Response response = RestAssured.post("https://api.example.com/users");
    int statusCode = response.getStatusCode();
    Assert.assertEquals(statusCode, 201, "Expected status code is 201");
  }
}

위의 코드에서는 RestAssured를 사용하여 GET 및 POST 요청을 보내고, 응답의 상태 코드를 검증합니다. Assert 클래스를 사용하여 상태 코드가 기대한 값과 동일한지 확인합니다.

테스트 실행

테스트를 실행하기 위해 IDE에서 TestNG 플러그인을 설치하고, 테스트 클래스를 실행합니다. 또는 Maven이나 Gradle을 사용하여 테스트를 실행할 수도 있습니다. 이러한 방법은 IDE와 무관하게 테스트를 실행할 수 있는 장점이 있습니다.

결론

TestNG를 사용하여 HTTP 요청을 테스트하는 방법에 대해 알아보았습니다. 이를 통해 API 테스트를 자동화하고, 효율적으로 테스트를 관리할 수 있습니다. TestNG는 다양한 기능과 유용한 어노테이션을 제공하므로, 더욱 복잡한 테스트 시나리오에 적용하기에도 용이합니다.