API 엔드포인트를 한 번 테스트하는 것은 간단합니다. 요청을 보내고, 응답을 검토하고, 모든 것이 예상대로 작동하는지 확인하면 됩니다. 진정한 과제는 수십, 심지어 수백 개의 다른 데이터 세트에 대해 동일한 테스트를 실행해야 할 때 시작됩니다. 수동으로 매개변수를 업데이트하고 요청을 반복적으로 보내는 것은 시간이 많이 소요될 뿐만 아니라 오류가 발생하기 쉽고 확장이 불가능합니다.
이것이 바로 데이터 기반 API 테스트가 필요한 이유입니다. 요청을 수동으로 다시 작성하거나 재전송하는 대신, 단일 테스트 케이스를 정의하고 여러 입력 데이터 세트로 자동으로 실행합니다. 그 결과 더 넓은 범위의 테스트 적용 범위, 더 높은 정확성, 그리고 훨씬 적은 수작업을 얻을 수 있습니다.
이를 효율적으로 수행하려면 적절한 도구가 필요합니다. Apidog는 CSV 및 JSON 파일을 사용하여 데이터 기반 테스트를 위한 기본 지원을 제공하여 돋보입니다. 올인원 API 개발 및 테스트 플랫폼인 Apidog는 외부 데이터 파일을 테스트 시나리오에 바인딩하고 반복적으로 실행하여 각 응답을 자동으로 검증할 수 있도록 해줍니다.
다른 사용자로 로그인 흐름을 테스트하든, 다양한 쿼리로 검색 API를 테스트하든, 여러 매개변수 조합으로 리소스 생성을 테스트하든, Apidog는 반복적인 작업을 제거하고 훨씬 짧은 시간에 신뢰할 수 있고 포괄적인 API 테스트를 달성하도록 돕습니다.
이제 Apidog를 CSV 및 JSON과 함께 사용하여 데이터 기반 API 테스트를 마스터하기 위한 완벽한 단계별 가이드에 대해 자세히 알아보겠습니다.
CSV 및 JSON을 사용한 데이터 기반 API 테스트 단계별 가이드

구체적인 예시를 사용하여 설정부터 실행까지 전체 과정을 살펴보겠습니다. 사용자 등록 API 엔드포인트를 테스트할 것입니다.
1단계: 기본 API 요청 정의
먼저, 테스트 템플릿으로 사용할 API 요청을 생성합니다.
- Apidog에서 사용자 등록 엔드포인트(예:
POST /api/v1/users)에 대한 새 요청을 생성합니다. - 헤더를 설정합니다(예:
Content-Type: application/json). - Body 탭에서 JSON 페이로드를 생성합니다. 값을 하드코딩하는 대신, Apidog의 동적 변수 구문
{{}}을 사용하여 플레이스홀더를 생성합니다.
{
"username": "{{username}}",
"email": "{{email}}",
"password": "{{password}}",
"role": "{{role}}"
}
플레이스홀더인 {{username}}, {{email}} 등을 주목하세요. Apidog는 실행 중에 이들을 데이터 파일의 실제 값으로 대체합니다.
2단계: 테스트 데이터 파일 생성 (CSV 또는 JSON)
이제 플레이스홀더에 데이터를 공급할 외부 파일을 생성합니다.
옵션 A: CSV 파일 사용
CSV는 테이블 형식 데이터에 완벽합니다. user_data.csv 파일을 생성합니다:
username,email,password,role,expected_status
john_doe,john@example.com,SecurePass123!,user,201
jane_smith,jane@example.com,AnotherPass456!,admin,201
bad_user,not-an-email,short,user,400
duplicate_user,john@example.com,SomePass789!,user,409- 첫 번째 행은 플레이스홀더와 일치하는 변수 이름(
username,email등)과 유효성 검사를 위한 추가expected_status를 정의합니다. - 각 후속 행은 해당 실행을 위한 데이터가 포함된 테스트 케이스입니다.
옵션 B: JSON 파일 사용
JSON은 중첩되거나 더 복잡한 데이터 구조에 이상적입니다. user_data.json 파일을 생성합니다:
[
{
"username": "john_doe",
"email": "john@example.com",
"password": "SecurePass123!",
"role": "user",
"expected_status": 201
},
{
"username": "jane_smith",
"email": "jane@example.com",
"password": "AnotherPass456!",
"role": "admin",
"expected_status": 201
},
{
"username": "bad_user",
"email": "not-an-email",
"password": "short",
"role": "user",
"expected_status": 400
}
]
3단계: Apidog에서 데이터 기반 테스트 구성
여기에서 Apidog의 통합 워크플로우가 빛을 발합니다.
- 대시보드 내의 "Test" 탭으로 이동합니다 (또는 테스트 스위트에서 새 테스트 케이스를 생성합니다).

2. 새 테스트 단계를 추가하려면 클릭하고 POST /api/v1/users 요청을 선택합니다.

3. 테스트 데이터 업로드: "Test Data" > "+New"를 클릭하여 user_data.csv 또는 user_data.json 파일을 업로드합니다. Apidog가 이를 파싱하고 데이터 행의 미리보기를 보여줍니다.


4. 변수 매핑 (필요한 경우): Apidog는 열 이름(CSV) 또는 속성 키(JSON)를 요청의 {{variable}} 플레이스홀더에 자동으로 매핑합니다. 매핑이 올바른지 확인합니다.
4단계: 데이터 변수를 사용하여 어설션 작성
실제 강력함은 입력 데이터를 기반으로 다르게 예상되는 결과를 검증하는 데서 나옵니다. Test 탭에서 어설션("asserts" 또는 "checks"라고도 함)을 작성합니다.
가장 중요한 것은 어설션에서 파일의 동일한 데이터 변수를 참조할 수 있다는 것입니다.
예를 들어, Response Status Code 어설션을 추가합니다:
- 예상 값 (Expected Value):
{{expected_status}}
이것은 "첫 번째 테스트 실행(john_doe)의 경우, 상태 코드가 201과 같은지 어설션합니다. 세 번째 실행(bad_user)의 경우, 400과 같은지 어설션합니다."를 의미합니다. 어설션은 각 반복마다 동적으로 변경됩니다.
Apidog의 스크립트 섹션에서 JavaScript를 사용하여 더 복잡한 어설션을 추가할 수 있습니다:
// 예시: 성공적인 생성을 위한 응답 본문 유효성 검사
pm.test("상태 코드는 " + pm.variables.get("expected_status")입니다.", function () {
pm.response.to.have.status(pm.variables.get("expected_status"));
});
// 성공적인 생성을 예상하는 경우에만 사용자 ID 확인
if (pm.variables.get("expected_status") === 201) {
pm.test("응답에 사용자 ID가 있습니다.", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.id).to.be.a('number');
pm.expect(jsonData.username).to.eql(pm.variables.get("username"));
});
}
5단계: 테스트 실행 및 결과 분석
실행(Run) 버튼을 클릭합니다. Apidog는 데이터 파일의 각 행에 대해 단일 테스트 단계를 여러 번 실행합니다.
보고서에서 모든 것이 합쳐집니다:
Apidog는 명확하고 집계된 보고서를 다음과 같이 제공합니다:
- 총 반복 횟수: (예: "4/4 통과")
- 각 데이터 행에 대한 상세 분석: 확장하여 실제 대체된 값과 함께 전송된 정확한 요청 및 해당 특정 반복에 대해 수신된 응답을 볼 수 있습니다.
- 모든 실패는 문제를 일으킨 특정 데이터 행에 정확히 표시됩니다.
duplicate_user가 상태가409가 아니어서 실패했나요? 즉시 확인할 수 있습니다.
이것은 디버깅을 믿을 수 없을 정도로 효율적으로 만듭니다. 어떤 테스트 케이스가 실패했는지 추측할 필요가 없습니다. 특정 데이터 세트 {"username": "duplicate_user", ...}를 사용한 반복에서 실패했음을 알 수 있습니다.
데이터 기반 API 테스트를 위한 모범 사례
- 환경별 데이터: 데이터 기반 테스트를 Apidog의 환경과 결합하세요. 스테이징에서 프로덕션으로 변경되는
base_url변수를 환경에 가질 수 있으며, CSV 파일은 둘 다에 적용 가능한 테스트 케이스를 포함할 수 있습니다. - 재사용 가능한 테스트 데이터: CSV/JSON 파일을 Apidog 프로젝트 내의 중앙 위치에 저장합니다. 여러 테스트 스위트가 동일한 데이터 파일을 참조하여 일관성을 보장할 수 있습니다.
- 데이터 파일 프로그래밍 방식으로 생성: 복잡한 시나리오의 경우 스크립트(Python, Node.js)를 사용하여
test_data.csv파일을 생성합니다. 이는 무작위 데이터 또는 광범위한 값으로 테스트하는 데 탁월합니다(예: 100가지 다른page및limit조합으로 페이지 매김 테스트). - 테스트 설정/정리: 데이터 기반 테스트와 함께 Apidog의 사전 요청 스크립트 및 테스트 정리 기능을 사용합니다. 예를 들어,
DELETE테스트의 각 반복 전에 사전 요청 스크립트를 사용하여 삭제될 리소스를 생성할 수 있습니다.
결론: API 테스트 워크플로우 혁신
Apidog에서 CSV/JSON 파일을 사용한 데이터 기반 테스트는 수동적이고 반복적인 확인에서 자동화되고 포괄적인 검증으로 전환시킵니다. 이는 좋은 테스트의 핵심 원칙인 효율성을 희생하지 않고 철저함을 구현합니다.
테스트 데이터를 외부에 두면 팀의 모든 사람이 쉽게 읽고, 업데이트하고, 이해할 수 있는 테스트 시나리오의 살아있는 문서를 생성합니다. Apidog의 이러한 방법론의 완벽한 통합은 복잡한 설정 없이도 더 신뢰할 수 있는 API로 가는 간단한 경로를 의미합니다.
하나씩 API를 테스트하는 것을 멈추세요. 오늘 Apidog를 무료로 다운로드하고 첫 CSV 파일을 가져와서 얼마나 강력하고 효율적인 API 테스트가 가능한지 경험해보세요.
