통과하는 테스트 스위트는 계속 통과할 때만 도움이 됩니다. 오늘날 결제 흐름은 잘 작동하지만, 새벽 2시에 종속성이 호환되지 않는 변경 사항을 배포하거나, 주말에 인증서가 만료되거나, 설정 드리프트로 인해 일요일에 결제 엔드포인트가 중단될 수 있습니다. 그러면 테스트 실행이 아닌 화난 고객으로부터 이 사실을 알게 됩니다. 해결책은 지루하지만 신뢰할 수 있습니다: 사람이 버튼을 클릭하지 않고도 API 테스트를 정기적으로 실행하고, 문제가 발생하면 즉시 통보받는 것입니다.
Apidog에는 이러한 목적을 위한 내장된 예약 작업(Scheduled Tasks) 기능이 있습니다. 이미 구축한 테스트 시나리오를 지정하고, 실행 주기를 설정하고, 실행할 머신을 선택하고, 알림을 연결하기만 하면 됩니다. 이 가이드는 현재의 한계를 포함하여 모든 것을 솔직하게 설명합니다. 실시간 엔드포인트에 대한 자동 검사 실행이 처음이라면, API 모니터링에 대한 기본 설명이 더 넓은 맥락을 제공하며, Apidog 예약 작업 문서는 UI에 대한 기록의 출처입니다.
시작하기 전에 한 가지 알려드릴 점이 있습니다. 예약 작업 기능은 현재 베타로 표시되어 있으며, 계정이 수행할 수 있는 예약 실행의 정확한 횟수는 요금제에 따라 달라집니다. 읽으시면서 이 두 가지를 모두 염두에 두십시오.
예약 작업의 기능 (및 예약 스크레이퍼와의 차이점)
Apidog의 예약 작업은 하나 이상의 저장된 테스트 시나리오를 반복 주기(recurring cycle)로 실행합니다. 핵심 API에 대한 야간 회귀 테스트, 스테이징 환경에 대한 몇 시간마다의 스모크 테스트, 또는 주말 전체 건전성 점검을 생각해보십시오. 작업은 어떤 시나리오를 실행할지, 어떤 환경을 대상으로 할지, 얼마나 자주 실행할지, 어떤 머신이 작업을 실행할지, 그리고 실패 시 누구에게 알릴지를 기억합니다.
웹 스크래핑 또는 데이터 수집과 관련하여 "예약 작업"이라는 문구를 본 적이 있다면, 그것과는 다른 것입니다. 이 기능은 타이머로 페이지를 크롤링하는 것이 아닙니다. 이것은 테스트 모듈 내에 있으며 API 테스트 시나리오(어설션, 연결된 요청, 추출된 변수 등)를 구동합니다. 출력은 스크랩된 데이터셋이 아니라 API 계약에 대한 합격 또는 불합격 보고서입니다.
그 차이가 중요한 이유는 구성하는 방식이 달라지기 때문입니다. 선택자나 크롤링 규칙을 작성하는 것이 아닙니다. 기존 테스트 시나리오를 선택하고 Apidog에 언제 어디서 실행할지 알려주는 것입니다.
시작하기 전에: 자체 호스팅 Runner 구성
여기 사람들이 종종 실수하는 전제 조건이 있습니다. 예약 작업을 실행하려면 먼저 자체 호스팅 Runner를 구성해야 합니다. 문서에 이에 대해 명확히 명시되어 있습니다.
Runner는 테스트 스위트를 실행하는 머신입니다. 예약 작업이 실행되면 Apidog는 데스크톱 클라이언트에서 요청을 실행하지 않고, 선택한 Runner에 작업을 전달하며, 스위트의 모든 요청은 해당 머신에서 전송됩니다. CI 박스, 작은 상시 가동 서버 또는 전용 VM 모두 잘 작동합니다. 무엇을 선택하든 원하는 일정에 따라 활성화되고 접근 가능해야 합니다.
Runner 대상 필드는 두 가지 선택지를 제공합니다: "출시 예정"으로 표시된 Apidog Cloud 또는 자체 호스팅 Runner. Apidog Cloud는 아직 사용할 수 없으므로, 현재로서는 자체 호스팅 Runner만이 유일하게 작동하는 옵션입니다. 클라우드 실행이 출시될 때까지는 클라우드 실행을 염두에 두고 계획하지 마십시오.
요청이 Runner 머신에서 시작되기 때문에 해당 네트워크 환경이 결과에 영향을 미칩니다. 회사 VPN 뒤, 다른 지역 또는 방화벽으로 보호되는 서브넷에 있는 Runner는 노트북과 다른 응답을 볼 수 있습니다. 이는 일반적으로 현실적인 모니터링을 위해 원하는 것이지만, 예약된 실행이 로컬 실행과 일치하지 않을 때 알아두는 것이 중요합니다.
단계별: 예약 작업 생성하기
Runner가 등록되면 나머지는 클라이언트에서 진행됩니다. 아래 실행 예시는 사용자 가입, 제품 목록, 장바구니 및 Stripe를 통한 결제를 포함하는 전자상거래 API의 야간 회귀 테스트 스위트입니다.
1. 테스트 모듈에서 예약 작업 열기
Apidog 클라이언트에서 테스트 모듈을 엽니다. 테스트 폴더 트리에서 '예약 작업'을 클릭하여 프로젝트의 모든 예약 작업을 보고 관리할 수 있습니다. 프로젝트 전체의 모든 작업이 '예약 작업' 섹션 아래에 표시되므로, 여기가 어떤 작업이 언제 실행되는지 확인할 수 있는 유일한 장소입니다.
2. 작업 생성
"+ 새로 만들기"를 클릭하여 새 예약 작업을 생성합니다. 여기에서 폴더를 생성하여 관련 작업을 그룹화할 수도 있습니다. 이는 스테이징 및 프로덕션 또는 다른 서비스에 대한 별도의 스위트가 있을 때 유용합니다. 작업에 명확한 '작업 이름'과 '설명'을 부여하십시오. 이것들은 작업을 구별하고 그 목적을 설명하기 위해 존재하므로, 미래의 당신은 "야간 회귀, 프로덕션"이 실제로 무엇을 다루는지 열어보지 않고도 알 수 있습니다. 각 작업에는 활성화/비활성화 토글이 있으며, 트리의 작업은 언제든지 활성화 또는 비활성화할 수 있습니다.
3. 실행할 테스트 시나리오 선택
테스트 시나리오(Test Scenario) 아래에서 포함할 시나리오를 하나 이상 선택하십시오. 전자상거래 예시에서는 "가입 및 로그인", "탐색 및 장바구니 추가", "Stripe 테스트 카드로 결제"를 선택하여 단일 작업이 전체 핵심 경로를 다루도록 할 수 있습니다. 각 시나리오는 자체 실행 설정(환경, 테스트 데이터, 반복 횟수, 지연, 요청 및 응답 저장 여부)을 가질 수 있습니다. 각 시나리오를 개별적으로 조정하고 싶지 않다면, '동일한 실행 구성 사용(Use same execution config)'을 켜서 선택한 모든 시나리오에 한 번에 단일 런타임 구성을 적용하십시오. 이는 대규모 스위트의 일관성을 유지하고 빠르게 설정할 수 있도록 합니다. 환경 선택은 사람들이 가장 중요하게 생각하는 설정입니다. 야간 프로덕션 모니터는 프로덕션 환경을 가리키고, 사전 출시 스모크 테스트는 스테이징 환경을 가리키도록 하십시오. 각 시나리오가 자체 환경을 지정할 수 있으므로, 필요한 경우 하나의 작업이 여러 대상을 혼합할 수도 있지만, 하나의 작업을 단일 환경으로 유지하는 것이 더 깔끔하게 이해할 수 있습니다.
4. 실행 주기 설정
'실행 주기(run-schedule)' 필드를 원하는 주기로 설정하십시오. 어떤 화면에 있느냐에 따라 이 필드는 '실행 주기(Run Cycle)' 또는 '실행 모드(Run Mode)'로 표시될 수 있습니다. 같은 설정이며 UI에 따라 라벨 문구가 다를 수 있습니다. 문서에는 따라 할 수 있는 구체적인 예시가 있습니다: 매주 일요일 오후 11시, 6시간마다, 또는 8시간마다. 야간 회귀 테스트의 경우, 매일 심야 실행은 소음을 줄이고 업무 시간 전에 문제를 파악합니다. 스테이징 스모크 테스트의 경우, 6시간마다 실행하면 환경에 부담을 주지 않으면서 더 빠른 피드백을 얻을 수 있습니다.
5. 실행 위치 선택
'러너(runner)' 필드를 자체 호스팅 Runner로 설정하십시오. 스케줄 필드와 마찬가지로, 이 필드는 화면마다 '실행 위치(Runs on)', '실행 대상(Run On)', 또는 '실행 위치(Runs On)'로 일관성 없이 표시됩니다. 모두 동일하게 스위트를 실행하는 머신을 의미합니다. Apidog Cloud도 여기에 나타나지만, 곧 출시될 예정이므로 자체 호스팅 Runner를 선택하십시오. 여러 개의 범용 Runner를 등록했다면, API와 동일한 VPC 내에 있는 Runner와 같이 원하는 특정 Runner를 선택하십시오. 테스트 스위트에서 시작된 모든 요청은 여기에 지정된 머신에서 전송된다는 점을 기억하십시오. 따라서 실제 트래픽과 동일하게 API를 볼 수 있는 네트워크를 가진 Runner를 선택하십시오.
6. 알림 켜기
문제가 발생했을 때 작업이 알려줄 수 있도록 알림(Notification)을 활성화하십시오. 문서에서는 예약 작업에 대해 이 기능을 권장하며, 이는 자동 실행의 핵심입니다: 침묵은 성공을 의미해야 하고, 실패는 신속하게 당신에게 도달해야 합니다. Apidog는 Slack, Teams, Webhook, Jenkins, Email이라는 채널을 지원합니다. 이메일의 경우, 프로젝트 멤버의 주소가 자동 완성되며, 온콜 로테이션이나 공유 받은 편지함을 위해 비회원 주소를 수동으로 입력할 수 있습니다. Slack은 실패 알림을 팀 채널에 바로 전송하고, Webhook 옵션을 사용하면 PagerDuty부터 사용자 지정 엔드포인트에 이르기까지 실행하는 다른 모든 곳으로 알림을 보낼 수 있습니다. 또한 알림이 발생하는 시점을 선택할 수 있습니다: 모든 실행 후, 또는 실패 시에만. 정상적인 야간 스위트의 경우, 실패 시에만 알림을 설정하면 중요한 순간까지 채널을 조용하게 유지합니다. 불안정한 롤아웃 중에는 모든 실행 후 알림을 설정하여 작업이 실제로 실행되고 있음을 확인하는 심장 박동을 받을 수 있습니다.
7. 저장 및 활성화
작업의 토글을 켜서 활성화하면, 설정한 주기로 실행되기 시작합니다. 나중에 삭제하지 않고 비활성화할 수 있습니다. 이는 계획된 서비스 중단이나 시끄러운 마이그레이션 기간 동안 유용합니다.
8. 실행 기록 확인
각 실행 후, 결과는 Runner에서 서버로 자동으로 업로드됩니다. 클라이언트에서 '예약 작업 - 실행 기록(Scheduled Tasks - Run History)' 섹션을 열어 확인할 수 있습니다. 이것이 당신의 감사 추적입니다: 어떤 실행이 통과했고, 어떤 실행이 실패했으며, 어떤 어설션이 깨졌고, 언제 그랬는지. Slack에 알림이 도착하면, 실행 기록은 그 배경을 자세히 확인할 수 있는 곳입니다.
고급 설정 및 변형
기본 작업이 실행된 후, 몇 가지 옵션으로 더욱 견고하게 만들 수 있습니다. 변수 범위. 시나리오가 실행 간에 데이터를 전달할 때, Apidog는 가장 작은 것부터 가장 큰 것까지 세 가지 공유 수준을 제공합니다: '현재 테스트 시나리오 내에서만 공유(Share only in the current test scenario)'는 해당 시나리오를 위한 전용 파일에 변수를 유지합니다; '현재 예약 작업의 모든 테스트 시나리오에서 공유(Share across all test scenarios in the current scheduled task)'는 동일한 작업 내 시나리오가 서로의 값을 읽을 수 있게 합니다; 그리고 '현재 예약 작업 폴더의 모든 예약 작업에서 공유(Share across all scheduled tasks in the current scheduled task folder)'는 가장 넓은 범위입니다. 데이터 흐름이 가능하면서도 가장 작은 범위를 선택하여, 한 시나리오의 인증 토큰이 관련 없는 다른 시나리오로 유출되지 않도록 하십시오.
변수 영속성. 테스트 시나리오 디자인 페이지에서 '변수 값 유지(Keep variable values)' 옵션이 활성화된 경우에만 값이 한 실행에서 다음 실행으로 전달됩니다. 야간 실행에 어제 캡처된 주문 ID나 새로 고쳐진 토큰이 필요하다면 이 옵션을 켜십시오. 이것이 없으면 각 실행은 깨끗하게 시작되며, 실행 간의 모든 가정은 조용히 깨집니다.
폴더로 그룹화하기. 스위트가 커지면 '예약 작업(Scheduled Tasks)' 아래에 폴더를 만들어 프로덕션 모니터와 사전 출시 검사를 분리하는 등의 작업을 할 수 있습니다. 폴더 수준 변수 범위는 관련 작업 그룹이 설정을 깔끔하게 공유할 수 있도록 합니다.
요금제 제한. 수행할 수 있는 예약 실행 횟수는 구독에 따라 달라집니다. 문서에는 정확한 수치를 Apidog 가격 페이지에서 확인하라고 명시되어 있으니, 공격적인 매시간 주기(every-hour cadence)를 설정하기 전에 요금제를 확인하십시오. 그룹화 및 더 복잡한 스케줄링 패턴에 대한 더 깊은 내용이 필요하다면, 고급 예약 작업에 대한 저희의 상세 설명이 더 많은 정보를 제공하며, API 테스트 시나리오의 조건부 로직에 대한 관련 가이드는 애초에 예약할 가치가 있는 시나리오를 구축하는 데 도움이 됩니다. 첫 번째 자동 검사를 설정하는 팀을 위해, CI의 야간 API 테스트 실행 문서는 이 문서와 잘 어울립니다.
Apidog CLI로 워크플로 자동화
예약 작업 UI는 한 가지 방법입니다. Apidog CLI는 세 번째 방법이며 실제적인 방법입니다: 저장된 시나리오를 헤드리스로 실행한 다음, cron 또는 CI 공급자가 주기를 처리하도록 합니다. 명확히 하자면, CLI에는 기본 스케줄 명령어가 없습니다. 스케줄링은 Apidog 외부에서 cron에 대해 이미 신뢰하는 도구에 의해 이루어집니다.
설치하고 인증한 다음, 선택한 환경에 대해 ID로 시나리오를 실행하십시오. Apidog CLI 설치 가이드는 토큰 설정에 대해 자세히 설명합니다:
npm install -g apidog-cli
apidog login --with-token <YOUR_TOKEN>
apidog run --access-token $APIDOG_ACCESS_TOKEN -t <SCENARIO_ID> -e <ENV_ID> -r cli,junit
여기서 -t는 테스트 시나리오 ID, -e는 환경 ID, -r은 리포터(여러 개일 경우 쉼표로 구분된 cli, html 또는 junit)입니다. cron으로 야간에 실행하려면 다음 한 줄을 추가하십시오:
0 2 * * * cd /srv/api-tests && apidog run --access-token $APIDOG_ACCESS_TOKEN -t 4471 -e 88 -r junit >> run.log 2>&1
또는 예약된 GitHub Actions 작업에서 트리거할 수 있습니다. 어느 쪽이든 JUnit 보고서는 기존 파이프라인 대시보드에 추가됩니다. cron 및 GitHub Actions 스케줄 트리거를 포함한 전체 설정은 CI/CD 파이프라인의 Apidog CLI를 참조하십시오.
자주 묻는 질문
오늘날 Apidog Cloud에서 예약 테스트를 실행할 수 있나요? 아직은 아닙니다. 러너 대상에는 Apidog Cloud가 "출시 예정"으로 표시되어 있으므로, 현재로서는 자체 호스팅 Runner만이 유일하게 작동하는 실행 머신입니다. 먼저 Runner를 등록한 다음, 작업에서 선택하십시오.
예약 작업은 얼마나 자주 실행될 수 있나요? 요금제가 허용하는 만큼 자주 실행될 수 있습니다. 주기는 유연하며, 6시간마다 또는 매주 일요일 오후 11시와 같은 문서화된 예시가 있지만, 예약 실행 횟수는 구독에 따라 제한됩니다. 숫자를 추정하기보다는 Apidog 가격 페이지에서 귀하의 등급에 대한 정확한 제한을 확인하십시오.
테스트 실패 시에만 알림을 받는 방법은 무엇인가요? 작업의 알림(Notification) 설정에서 '모든 실행(every run)' 대신 '실패 시에만(failures-only)' 옵션을 선택한 다음, 채널(Slack, Teams, Webhook, Jenkins 또는 Email)을 추가하십시오. 이렇게 하면 정상적인 밤에는 채널이 조용하게 유지되고, 문제가 발생하면 시끄러워집니다. 더 깊은 회귀 스위트와 함께 빠른 활성 신호를 위해 가벼운 API 건전성 검사와 함께 사용하십시오.
예약된 결과가 로컬 테스트 실행과 다른 이유는 무엇인가요? 요청이 노트북이 아닌 Runner 머신에서 오기 때문입니다. Runner의 네트워크, 지역, 그리고 모든 VPN 또는 방화벽이 응답에 영향을 미칩니다. 이는 예상된 일이며, 종종 사용자가 겪는 상황에 대한 더 현실적인 시각을 제공합니다.
변수가 매 실행마다 초기화됩니다. 무엇을 놓쳤나요? 테스트 시나리오 디자인 페이지의 '변수 값 유지(Keep variable values)' 옵션입니다. 캡처된 값이 한 실행에서 다음 실행으로 유지되도록 활성화하십시오. 이것이 없으면 각 예약 실행은 새롭게 시작되며, 실행 간의 모든 종속성은 실패합니다.
마무리
예약 테스트는 "API가 작동한다고 생각한다"를 "우리는 API가 작동한다는 것을 알고 있으며, 그렇지 않다면 지금쯤 들었을 것이다"로 바꿉니다. 시나리오를 한 번 구축하고, 자체 호스팅 Runner를 등록하고, 실행 주기를 설정하고, 실패 시 Slack 또는 이메일을 연결한 다음, 잠자는 동안 실행되도록 하십시오. 파이프라인 내에서 동일한 검사를 원한다면, CLI와 cron 조합은 추가 도구 없이 세 번째 방법을 제공합니다. 첫 번째 예약 회귀 테스트 스위트를 설정하려면 Apidog를 다운로드하십시오. 시작은 무료이며, 신용카드가 필요 없습니다.
