[java] TestNG를 활용한 RESTful 서비스 테스트

TestNG는 Java 기반의 테스팅 프레임워크로, 다양한 유형의 테스트를 효과적으로 관리하고 실행할 수 있는 기능을 제공합니다. 이번 블로그 포스트에서는 TestNG를 활용하여 RESTful 서비스를 테스트하는 방법에 대해 알아보겠습니다.

1. 의존성 추가하기

우선, TestNG를 프로젝트에 추가해야 합니다. Maven 프로젝트의 경우, pom.xml 파일에 다음과 같이 의존성을 추가합니다:

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

Gradle 프로젝트의 경우, build.gradle 파일에 다음과 같이 의존성을 추가합니다:

testImplementation 'org.testng:testng:7.3.0'

의존성을 추가하고 프로젝트를 업데이트 한 후, TestNG를 사용할 준비가 되었습니다.

2. RESTful 서비스 테스트 작성하기

이제 실제로 RESTful 서비스를 테스트하는 클래스를 작성해보겠습니다. 아래의 예시는 간단한 GET 요청을 보내고, 응답을 확인하는 테스트 코드입니다.

import static io.restassured.RestAssured.*;

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

public class RestfulServiceTest {

    @Test
    public void testGetRequest() {
        // GET 요청 보내기
        int statusCode = given()
                            .when()
                            .get("https://api.example.com/users")
                            .getStatusCode();

        // 응답 확인
        Assert.assertEquals(statusCode, 200, "GET request failed");
    }
}

위의 코드에서는 restassured 라이브러리를 활용하여 GET 요청을 보내고, 응답의 상태 코드를 확인하고 있습니다. 필요한 경우, given(), when(), then() 메서드 등을 활용하여 요청과 응답을 좀 더 세밀하게 다룰 수도 있습니다.

3. 테스트 실행하기

테스트를 실행하기 위해서는 TestNG의 실행 환경을 구성해야 합니다. 이를 위해 실행 가능한 클래스를 작성하고, 해당 클래스를 실행하면 됩니다.

import org.testng.TestNG;

public class TestRunner {
    public static void main(String[] args) {
        TestNG testng = new TestNG();
        testng.setTestClasses(new Class[] { RestfulServiceTest.class });
        testng.run();
    }
}

위의 클래스를 실행하면 RestfulServiceTest 클래스 내에 작성한 테스트가 실행되고 결과를 확인할 수 있습니다.

결론

이렇게 TestNG를 활용하여 RESTful 서비스를 테스트하는 방법에 대해 알아보았습니다. TestNG는 다양한 테스트 관리 기능을 제공하여, 효과적으로 테스트 코드를 작성하고 실행할 수 있도록 도와줍니다. 자세한 내용은 TestNG 공식 문서를 참고하시기 바랍니다.