텍스트 한 줄로 자동화까지? 커맨드라인 기반 HTTP 테스트 도구, Hurl 완전 정복
API 테스트 자동화, 생각보다 복잡하고 시간이 많이 들죠. 특히 여러 API를 연결하거나 테스트 시나리오를 구성하려고 하면 Postman은 너무 무겁고, curl은 너무 원초적입니다. 복잡한 검증이나 CI/CD 연동을 생각하면 더 막막해지기도 하고요.
이런 고민이 있다면 주목할 만한 도구가 있습니다. 바로 Hurl입니다. Rust로 작성된 경량 커맨드라인 기반의 HTTP 테스트 도구로, 명확한 텍스트 기반 구성과 뛰어난 자동화 기능, CI/CD 최적화까지 갖추고 있어 요즘 개발자들 사이에서 주목받고 있습니다.
이 글에서는 Hurl이 어떤 도구인지, 왜 주목받는지, 그리고 실제로 어떻게 활용할 수 있는지를 하나씩 살펴보겠습니다.
HTTP 테스트 도구, 왜 다시 봐야 할까?
기존에 많이 쓰이는 도구로는 Postman, curl, Insomnia 등이 있습니다. 각 도구는 장단점이 뚜렷하지만, 다음과 같은 공통적인 한계도 있습니다.
- 시나리오 구성이 복잡할 경우 유지보수가 어렵다
- 텍스트 기반이 아니면 버전 관리와 협업에 비효율적이다
- CI/CD 파이프라인과의 자연스러운 통합이 어렵다
Hurl은 이 지점을 정확히 공략합니다. 텍스트 기반으로 시나리오를 구성하고, 커맨드라인에서 테스트를 실행하며, 다양한 리포트 형식과 자동화 기능을 제공합니다.
Hurl이란 무엇인가?
Hurl은 간단한 .hurl 파일로 여러 HTTP 요청을 순차 실행할 수 있는 도구입니다. 응답 값에서 특정 데이터를 추출하거나 다음 요청에 변수로 활용할 수 있고, 상태 코드나 본문 등도 검증할 수 있습니다.
특히 REST, SOAP, GraphQL은 물론 HTML, JSON, XML 콘텐츠까지 폭넓게 지원하며, 복잡한 인증이나 폼 구성, CSRF 토큰 처리 같은 시나리오도 쉽게 구현할 수 있습니다.
Rust로 작성돼 빠르고 안정적이며, 내부적으로는 libcurl을 엔진으로 사용하기 때문에 네트워크 안정성도 보장됩니다.
주요 기능 정리
Hurl의 핵심 기능은 다음과 같습니다.
- 요청 체이닝: 여러 요청을 연결해 실행하며, 응답 결과를 다음 요청에 활용 가능
- 값 추출: XPath, JSONPath, 정규표현식 등으로 데이터 추출
- 조건 검증: 상태 코드, 응답 본문, 헤더, 쿠키, 응답 시간, 해시 등 다양한 요소 검증
- 보고서 출력: JUnit, HTML, TAP, JSON 형식의 리포트 지원
- CI/CD 연동: 테스트 실행 결과를 파이프라인과 연동 가능
- 고급 기능: 재시도, 지연 실행, 변수 주입, 비밀값 마스킹, AWS Sigv4 지원
자동화와 통합에 강한 구조
Hurl은 테스트 리포트를 다양한 형식으로 출력할 수 있습니다. 예를 들어 --report-html 옵션을 쓰면 테스트 결과를 HTML 보고서로 저장할 수 있고, JUnit, TAP 형식도 지원되어 Jenkins나 GitLab CI 같은 툴과 쉽게 연동됩니다.
또한 --retry, --retry-interval, --jobs, --parallel 같은 CLI 옵션을 통해 병렬 처리와 자동 재시도 기능도 활용할 수 있습니다.
기존 도구와의 차별점
항목 Postman curl Hurl
항목 | Postman | curl | Hurl |
UI 기반 | 있음 | 없음 | 없음 (텍스트 기반) |
협업/버전관리 | 어려움 | 어려움 | 쉬움 |
시나리오 구성 | GUI로 복잡 | 수작업 | 텍스트로 체이닝 구성 가능 |
자동화/CI | 제한적 | 가능하나 설정 복잡 | 리포트 및 통합 최적화 |
러닝 커브 | 낮음 | 중 | 매우 낮음 (직관적 포맷) |
Hurl은 텍스트 기반의 간결한 구성, 자동화 친화적인 구조, 다양한 프로토콜 지원으로 curl의 확장형이자 Postman의 대안이 될 수 있는 도구입니다.
복잡한 HTTP 테스트, 단순히 실행만 잘 된다고 끝이 아닙니다. 협업과 유지보수, 자동화와 통합까지 고려해야 제대로 된 테스트 전략이 됩니다.
Hurl은 그 모든 요소를 단일 텍스트 파일로 해결할 수 있는, 개발자 친화적이고 실용적인 도구입니다. 특히 DevOps나 테스트 자동화 파이프라인이 중요한 팀이라면 꼭 한 번 검토해볼 가치가 있습니다.
Postman이 무겁게 느껴지거나 curl만으로는 부족한 느낌이 들었다면, 지금 Hurl을 직접 설치해 테스트 시나리오를 구성해 보세요. 적은 노력으로 더 나은 테스트 환경을 구축할 수 있습니다.
https://github.com/Orange-OpenSource/hurl
GitHub - Orange-OpenSource/hurl: Hurl, run and test HTTP requests with plain text.
Hurl, run and test HTTP requests with plain text. Contribute to Orange-OpenSource/hurl development by creating an account on GitHub.
github.com