[java] Java Cucumber에서 SOAP API 테스트 실행하기

Cucumber는 자바 기반의 BDD (Behavior Driven Development) 프레임워크로, 개발자와 비개발자 사이의 의사소통을 원활하게 해주는 도구입니다. Cucumber를 사용하여 SOAP API를 테스트하는 방법에 대해 알아보겠습니다.

1. 프로젝트 설정

먼저, Cucumber를 사용하기 위해 프로젝트에 필요한 의존성을 추가해야 합니다. pom.xml 파일에 다음 의존성을 추가합니다:

<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-java</artifactId>
    <version>6.10.2</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>6.10.2</version>
    <scope>test</scope>
</dependency>

2. 테스트 스텝 작성

Cucumber는 feature 파일에서 테스트 스텝을 작성합니다. src/test/resources 디렉토리에 *.feature 파일을 생성하고, 다음과 같이 테스트 시나리오를 작성합니다:

Feature: SOAP API 테스트
  Scenario: SOAP API 호출
    Given SOAP API URL이 "http://example.com/soap-api"  경우
    When "getEmployees" 메서드를 호출한다
    Then 응답 상태 코드는 200이어야 한다
    And 응답 본문에 "John Doe"가 포함되어야 한다

3. 스텝 정의 작성

테스트 스텝을 정의하기 위해 src/test/java 디렉토리에 StepDefinitions.java 파일을 생성하고, 다음과 같이 스텝 정의를 작성합니다:

import io.cucumber.java.en.Given;
import io.cucumber.java.en.Then;
import io.cucumber.java.en.When;
import io.restassured.RestAssured;
import io.restassured.response.Response;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

public class StepDefinitions {

    private String apiUrl;
    private Response response;

    @Given("SOAP API URL이 {string} 인 경우")
    public void setApiUrl(String url) {
        apiUrl = url;
    }

    @When("{string} 메서드를 호출한다")
    public void callSoapApi(String methodName) {
        // SOAP API 호출을 위한 코드 작성
        response = RestAssured.get(apiUrl + "/" + methodName);
    }

    @Then("응답 상태 코드는 {int}이어야 한다")
    public void verifyStatusCode(int expectedStatusCode) {
        int actualStatusCode = response.getStatusCode();
        assertEquals(expectedStatusCode, actualStatusCode);
    }

    @Then("응답 본문에 {string}가 포함되어야 한다")
    public void verifyResponseBodyContains(String expectedText) {
        String responseBody = response.getBody().asString();
        assertTrue(responseBody.contains(expectedText));
    }
}

4. 테스트 실행

프로젝트의 루트 디렉토리에서 터미널을 열고, 다음 명령어로 테스트를 실행합니다:

mvn test

Cucumber는 feature 파일의 테스트 시나리오를 읽고, 정의된 스텝을 실행하여 테스트를 수행합니다. 결과는 터미널에서 확인할 수 있습니다.

결론

Java Cucumber를 사용하여 SOAP API를 테스트하는 방법에 대해 알아보았습니다. Cucumber를 사용하면 BDD 원칙에 따라 API 테스트를 쉽게 작성하고 실행할 수 있습니다.