본문으로 건너뛰기
SDETRole
SDETRole

API 테스트

cURL 코드 변환기

curl 명령어를 Playwright, REST Assured, Python 코드로 변환합니다.

브라우저에서만 실행됩니다 회원가입 불필요

cURL command

Paste from docs, a bug report or your browser’s “Copy as cURL”. Bash, cmd (^) and PowerShell (`) line continuations all work.

Code

도구 소개

API 문서, 버그 리포트, 브라우저의 “Copy as cURL”은 모두 curl 명령어를 건네지만, 테스트 스위트에 필요한 것은 코드입니다. 이 변환기는 셸처럼 명령어를 파싱하고(작은따옴표와 큰따옴표, $'…' 문자열, bash·cmd·PowerShell의 줄 연속 처리) request 픽스처를 쓰는 Playwright 테스트, REST Assured given/when/then 체인, Python requests 호출, JavaScript fetch로 바꿉니다. 메서드, URL과 쿼리 문자열, 헤더, -u의 Basic 인증, JSON·폼·원시 바디, -k와 --max-time 옵션을 유지합니다. 멀티파트 업로드(-F)나 클라이언트 인증서처럼 변환할 수 없는 옵션은 조용히 버리지 않고 목록으로 보여 주므로, 직접 추가할 부분을 알 수 있습니다. 모든 처리는 브라우저에서 실행되며 붙여 넣은 내용은 어디에도 전송되지 않습니다.

사용 방법

  1. 왼쪽 패널에 curl 명령어를 붙여 넣거나 “Load sample”(샘플 불러오기)을 클릭하세요.
  2. Playwright, REST Assured, Python requests, fetch 중 하나를 고르세요. 입력하는 대로 코드가 갱신됩니다.
  3. 코드를 테스트에 복사한 뒤 예시 어설션을 테스트에 필요한 것으로 바꾸세요. 먼저 요청을 수정하려면 “Edit in cURL generator”(cURL 생성기에서 편집)를 클릭하세요.

변환 결과를 실제 테스트로 만들기

변환된 코드는 같은 요청을 보내지만, 무언가를 어설션하기 전까지 요청은 테스트가 아닙니다. 먼저 상태 코드를 검증하고(Playwright에서는 await expect(response).toBeOK(), REST Assured에서는 then().statusCode(200)), 그다음 바디 전체가 아니라 동작을 증명하는 필드를 어설션하세요. ID, 타임스탬프, 토큰은 실행할 때마다 바뀌므로 값 대신 타입이나 형식을 확인하세요.

커밋하기 전에 시크릿을 코드에서 빼내세요. 브라우저에서 복사한 명령어에는 유효한 세션 쿠키나 Bearer 토큰이 들어 있는 경우가 많습니다. 환경 변수나 로그인 픽스처에서 읽어 오도록 바꾸고, 토큰이 공유되었다면 교체하세요.

“Copy as cURL”이 추가하는 것과 삭제해도 되는 것

  • sec-ch-ua, sec-fetch-*, user-agent, accept-language, priority 같은 브라우저 헤더. API에는 거의 필요 없고 테스트를 읽기 어렵게 만듭니다.
  • 세션이 담긴 Cookie 헤더. Playwright storageState나 픽스처 안의 토큰 요청 같은 정식 인증 단계로 대체하세요.
  • Referer와 Origin. CSRF 방어 등으로 API가 이를 확인하는 경우에만 남기세요.
  • Windows용 변형(“Copy as cURL (cmd)” 또는 “(PowerShell)”)은 따옴표 처리 방식이 다르며, 변환기는 둘 다 이해합니다.

cURL 코드 변환기 자주 묻는 질문

curl을 Playwright API 테스트로 어떻게 변환하나요?

명령어를 붙여 넣고 Playwright를 선택하세요. 결과물은 내장 request 픽스처를 사용하는 테스트로, request.post(url, { headers, data }) 다음에 expect(response.ok()).toBeTruthy()가 이어집니다. 이를 상태 코드와 테스트에서 중요한 필드에 대한 어설션으로 바꾸세요. npx playwright test로 실행되고 브라우저가 필요 없으므로, UI 테스트와 같은 스위트에서 API 검사를 돌리기에 충분히 빠릅니다.

어떤 curl 옵션을 지원하나요?

-X, -H, -d, --data, --data-raw, --data-binary, --data-urlencode, --json, -u, -G, -I, -i, -L, -k, --compressed, --max-time, -A(user agent), -e(referer), -b(Cookie 헤더로 전송)를 지원하며, bash·cmd·PowerShell의 따옴표 처리와 줄 연속도 지원합니다. -F 멀티파트 업로드나 --cert 같은 그 밖의 옵션은 경고로 표시되므로 직접 추가할 수 있습니다.

변환된 요청이 curl과 다르게 동작하는 이유는 무엇인가요?

대개 리디렉션이나 기본값 때문입니다. curl은 -L이 있어야만 리디렉션을 따라가지만, Playwright, REST Assured, Python requests, fetch는 기본적으로 따라갑니다. 또한 curl은 Content-Type을 지정하지 않으면 POST 바디를 폼 데이터로 보내므로, API가 변환된 요청을 거부한다면 이 헤더를 확인하세요.

내 명령어가 서버로 전송되나요?

아니요. 파싱과 코드 생성은 브라우저에서 실행되며 아무것도 업로드되거나 기록되지 않습니다. 그래도 공유 버그 리포트나 코드에 명령어를 붙여 넣기 전에는 토큰과 쿠키를 제거하세요.

SDETRole 전체에서 검색할 내용을 입력하세요.

Pagefind 전문 검색 · 브라우저에서 실행됩니다 검색 페이지 열기 →