요약
ReadyAPI에서 Apidog로 마이그레이션은 REST 중심 테스트 스위트의 경우 간단하게 진행될 수 있습니다. ReadyAPI 프로젝트를 내보내고, OpenAPI 가져오기를 활용해 변환 가능한 부분을 자동화하며, Groovy 스크립트는 JavaScript로 수동 변환하세요. SOAP 테스트 케이스가 많을수록 수동 작업이 많아집니다. 테스트 적용 범위를 유지하려면 단계별 마이그레이션 계획이 필수입니다.
💡 Apidog는 OpenAPI 사양 및 Postman 컬렉션을 가져오고 JavaScript 스크립트를 통해 테스트 파이프라인을 실행할 수 있는 무료 올인원 API 개발 플랫폼입니다. 신용 카드 없이 Apidog를 무료로 사용해보세요.
소개
API 테스트 인프라의 마이그레이션은 시작하기 전에는 간단하게 느껴질 수 있지만, 실제로는 수년간 쌓인 테스트 케이스, 사용자 정의 Groovy 스크립트, 데이터 파일, 환경 및 복잡한 테스트 스위트 구조 등 다양한 복잡성이 존재합니다. 자동 전환 가능한 부분, 수동으로 변환해야 할 부분, 남겨둘 수 있는 부분을 명확히 파악하는 것이 중요합니다.
이 가이드에서는 ReadyAPI 프로젝트 내보내기, 현황 분석, Apidog로 가져오기, Groovy-JavaScript 변환, CI/CD 설정, 두 도구 병렬 운영 등 전체 마이그레이션 절차를 실전 단계별로 안내합니다.
Step 1: 시작 전 ReadyAPI 프로젝트 감사
마이그레이션 전, 현재 ReadyAPI 프로젝트 구성 요소를 정확히 파악하세요. 이는 작업량과 집중해야 할 영역을 결정합니다.
- 테스트 스위트/케이스/스텝 개수 파악: 내비게이터에서 직접 세어보세요. 규모에 따라 소요 시간이 달라집니다.
- REST와 SOAP 테스트 케이스 비율: REST는 쉽게 마이그레이션되지만, SOAP는 수동 작업이 많습니다.
- Groovy 스크립트 사용 현황: 각 테스트 케이스의 스크립트 단계를 점검하여 Groovy 사용 비율을 확인하세요.
- 데이터 기반 테스트 사용: DataSource/데이터 파일(CSV, Excel, XML) 사용 여부를 체크하세요.
- Properties/Property Transfer 활용 여부: Apidog에서는 변수 및 환경 변수로 대체됩니다.
- LoadUI Pro 부하 테스트 사용 여부: Apidog는 부하테스트를 지원하지 않으므로, 별도 도구(k6 등)를 병행해야 합니다.
이 결과를 스프레드시트 등으로 문서화하면 마이그레이션 예측에 도움이 됩니다.
Step 2: ReadyAPI 프로젝트 내보내기
- ReadyAPI를 열고 프로젝트를 불러옵니다.
- 파일 > 다른 이름으로 저장을 통해 프로젝트를 XML 파일로 저장합니다.
- 테스트에서 참조하는 외부 데이터 파일(CSV, Excel, XML 등)을 모두 별도 보관합니다.
- 환경 설정값도 모두 기록해두세요.
이렇게 내보낸 XML 파일은 전체 프로젝트(테스트 스위트, 케이스, 스텝, 스크립트, 설정 등)를 완전히 보존합니다.
Step 3: API 정의 추출
REST API는 OpenAPI 사양을 활용하면 마이그레이션이 매우 간단해집니다.
- 옵션 A: ReadyAPI에서 REST 서비스 우클릭 → 내보내기/Swagger(OpenAPI) 사양 내보내기.
-
옵션 B: 백엔드가 이미 OpenAPI 사양(
/openapi.json등)을 제공한다면 직접 다운로드. - 옵션 C: 별도 사양이 없다면 ReadyAPI의 REST 요청 정보를 토대로 엔드포인트, 파라미터, 요청/응답 구조를 수동으로 정리.
Step 4: Apidog로 가져오기
OpenAPI 사양이 준비되면 Apidog에서 다음 절차를 따르세요.
- Apidog를 실행하고 새 프로젝트를 생성합니다.
- API > 가져오기에서 OpenAPI 3.0, Swagger 2.0 등을 선택합니다.
- 사양 파일 업로드 또는 URL 입력.
- Apidog가 모든 엔드포인트, 파라미터, 요청 본문, 응답 스키마를 자동으로 생성합니다.
Postman 컬렉션이 있다면 파일 > 가져오기 > Postman을 통해 바로 이전 가능합니다.
Step 5: REST 엔드포인트용 테스트 케이스 다시 생성
REST 테스트 케이스는 다음 순서로 Apidog에서 재구성하세요.
- ReadyAPI에서 각 REST 테스트 케이스의 요청, 어설션, 데이터 소스를 확인.
- Apidog에서 해당 API 엔드포인트를 선택하고, 테스트 스텝 추가로 동일 기능의 테스트 케이스를 생성.
어설션 변환 예시:
- 본문 포함 어설션
pm.test('contains value', () => { pm.expect(pm.response.text()).to.include('expected string'); });
- 상태 코드 어설션
pm.test('status 200', () => { pm.response.to.have.status(200); });
- JSONPath 어설션
pm.test('field value', () => { pm.expect(pm.response.json().fieldName).to.equal('expected'); });
단순 GET/POST 테스트는 15~30분 내에 마이그레이션이 가능합니다.
Step 6: Groovy 스크립트를 JavaScript로 변환
사용자 지정 스크립트가 많은 경우, 다음과 같이 수동 변환이 필요합니다.
- JSON 파싱
// Groovy (ReadyAPI)
def response = context.expand('${TestStep#Response}')
def json = new groovy.json.JsonSlurper().parseText(response)
def value = json.fieldName
// JavaScript (Apidog)
const response = pm.response.json();
const value = response.fieldName;
- 변수 설정
// Groovy
testRunner.testCase.setPropertyValue('myVariable', someValue)
// JavaScript
pm.variables.set('myVariable', someValue);
- 조건부 어설션
// Groovy
if (statusCode == 200) {
assert responseBody.contains("success")
}
// JavaScript
if (pm.response.code === 200) {
pm.test('response contains success', () => {
pm.expect(pm.response.text()).to.include('success');
});
}
- 날짜 포맷
// Groovy
def now = new Date()
def formatted = now.format('yyyy-MM-dd')
// JavaScript
const now = new Date();
const formatted = now.toISOString().split('T')[0];
복잡한 Groovy(특히 Java 라이브러리 활용 등)는 자동 변환이 어렵기 때문에, 스크립트 동작을 정확히 이해한 후 직접 JavaScript로 재작성해야 합니다.
Step 7: SOAP 테스트 케이스 처리
Apidog는 SOAP 테스트를 위한 전용 도구가 없습니다. REST로 대체 가능한 경우 REST 엔드포인트로 전환하세요. 그렇지 않다면:
- SOAP 테스트는 ReadyAPI에서 유지: SOAP 케이스는 ReadyAPI로, REST는 Apidog로 병행 운영.
- SoapUI 오픈 소스 활용: 라이선스 없이 SOAP 테스트 가능하지만, ReadyAPI의 모든 기능을 대체하지는 못합니다.
특히 WS-Security 등 복잡한 어설션은 신중하게 이전하세요.
Step 8: 환경 및 변수 설정
ReadyAPI의 환경 설정을 Apidog의 환경 시스템에 맞춰 재구성합니다.
- Apidog에서 동일한 환경(설정 > 환경)을 생성.
- 변수(기본 URL, 인증 토큰 등)도 동일하게 추가.
- 테스트 케이스 내 변수 참조는
{{variableName}}문법을 사용.
Step 9: CI/CD 구성
ReadyAPI에서는 보통 testrunner 명령을 사용하지만, Apidog는 CLI 기반입니다.
- Apidog CLI 설치
npm install -g apidog-cli
- 테스트 실행
apidog run "path/to/collection.json" -e "environment-id"
- GitHub Actions 예시
- name: Run API tests
run: apidog run collection.json --environment staging
- Jenkins 등에서는 셸 스크립트로 CLI 호출
CI에서 ReadyAPI → Apidog로 명령을 점진적으로 교체하세요.
Step 10: 전환 기간 동안 두 도구 병렬 운영
마이그레이션 완료 전 최소 한 번의 릴리스 주기 동안 ReadyAPI와 Apidog를 병렬로 실행하세요.
- CI에서 ReadyAPI 테스트를 기준 테스트 게이트로 유지
- Apidog 테스트를 병행 실행해 결과 비교
- Apidog에서만 발생하는 실패는 상세 조사
- 신규 테스트는 Apidog에만 추가
신뢰도가 확보되면 ReadyAPI를 CI에서 제거하고, 몇 달간 예비로 유지하세요.
FAQ
Q: ReadyAPI → Apidog 마이그레이션 소요 기간은?
REST 전용, Groovy 적은 프로젝트는 1~3일. 복잡한 Groovy/대규모/복잡한 구조의 경우 2~6주. 1단계의 감사를 통해 예측 가능.
Q: ReadyAPI의 테스트 데이터 파일을 Apidog에서 쓸 수 있나요?
CSV는 Apidog 데이터 기반 테스트와 호환. Excel은 CSV로 변환 필요. XML 파일은 별도 재구성 필요.
Q: 마이그레이션 중 ReadyAPI와 Apidog를 동일 CI 파이프라인에서 쓸 수 있나요?
네. ReadyAPI testrunner와 Apidog CLI를 병행 실행해 결과를 비교하세요.
Q: 환경 설정 자동 이전이 가능한가요?
불가. Apidog에서는 수동으로 환경을 다시 만들어야 합니다. ReadyAPI 환경창을 참고하여 복사하세요.
Q: REST 대안 없는 ReadyAPI 테스트는?
SOAP 전용 테스트는 ReadyAPI 유지, SoapUI 오픈소스 활용, 또는 레거시 서비스라면 테스트 생략 등 현실적 방안을 선택.
Q: Apidog가 ReadyAPI와 동일한 어설션을 지원하나요?
REST 테스트 어설션은 JavaScript로 유사하게 구현 가능. 단, SOAP Fault, WS-Security 등 일부 특화 어설션은 미지원.
ReadyAPI → Apidog 마이그레이션은 신중한 감사, 단계별 실행, REST 우선 마이그레이션, 병렬 운영을 통해 테스트 누락 없이 안전하게 수행할 수 있습니다.
Top comments (0)