Pular para o conteúdo
SDETRole
SDETRole

Testes de API

Conversor de cURL para código

Converta um comando curl em código Playwright, REST Assured ou Python.

Roda inteiramente no seu navegador Sem cadastro

cURL command

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

Code

Sobre esta ferramenta

Documentação de API, relatórios de bug e o “Copy as cURL” do navegador entregam um comando curl, mas a sua suíte de testes precisa de código. Este conversor interpreta o comando como um shell faria (aspas simples e duplas, strings $'…' e continuações de linha do bash, cmd e PowerShell) e o transforma em um teste Playwright usando a fixture request, uma cadeia given/when/then do REST Assured, uma chamada Python requests ou JavaScript fetch. Ele mantém o método, a URL e a query string, os headers, a autenticação Basic de -u, bodies JSON, de formulário e brutos, e as opções -k e --max-time. Opções que não consegue converter, como uploads multipart (-F) ou certificados de cliente, são listadas em vez de descartadas silenciosamente, para você saber o que adicionar à mão. Tudo roda no seu navegador e nada do que você cola é enviado.

Como usar

  1. Cole um comando curl no painel da esquerda ou clique em “Load sample”.
  2. Escolha Playwright, REST Assured, Python requests ou fetch. O código é atualizado enquanto você digita.
  3. Copie o código para o seu teste e substitua as assertions de exemplo pelas que o teste precisa. Para alterar a requisição antes, clique em “Edit in cURL generator”.

Transformando a saída em um teste de verdade

O código convertido envia a mesma requisição, mas uma requisição só vira teste quando valida algo. Comece pelo status (await expect(response).toBeOK() no Playwright, then().statusCode(200) no REST Assured) e depois valide os campos que comprovam o comportamento, não o body inteiro. Ids, timestamps e tokens mudam entre execuções, então verifique o tipo ou o formato em vez do valor.

Tire os segredos do código antes de fazer commit. Um comando copiado do navegador muitas vezes contém um cookie de sessão ou bearer token ativo: leia-o de uma variável de ambiente ou de uma fixture de login e rotacione o token se ele tiver sido compartilhado.

O que o “Copy as cURL” adiciona e o que você pode apagar

  • Headers do navegador como sec-ch-ua, sec-fetch-*, user-agent, accept-language e priority. APIs raramente precisam deles, e eles deixam o teste mais difícil de ler.
  • Headers Cookie com a sua sessão. Substitua-os por uma etapa de autenticação adequada, como um storageState do Playwright ou uma requisição de token em uma fixture.
  • Referer e Origin. Mantenha-os apenas se a API os verificar, por exemplo para proteção contra CSRF.
  • As variantes do Windows (“Copy as cURL (cmd)” ou “(PowerShell)”) usam aspas diferentes, e o conversor entende as duas.

Perguntas frequentes: Conversor de cURL para código

Como converter curl em um teste de API no Playwright?

Cole o comando e escolha Playwright. A saída é um teste que usa a fixture request nativa: request.post(url, { headers, data }) seguido de expect(response.ok()).toBeTruthy(). Substitua isso por assertions sobre o status e os campos que importam para o teste. Ele roda com npx playwright test e não precisa de navegador, então é rápido o bastante para checagens de API na mesma suíte dos testes de UI.

Quais opções do curl são suportadas?

-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) e -b (enviado como header Cookie), além de aspas e continuações de linha para bash, cmd e PowerShell. Qualquer outra, como uploads multipart com -F ou --cert, é listada como aviso para você adicionar à mão.

Por que a requisição convertida se comporta diferente do curl?

Geralmente por causa de redirecionamentos ou valores padrão. O curl só segue redirecionamentos com -L, enquanto Playwright, REST Assured, Python requests e fetch os seguem por padrão. O curl também envia um body POST como dados de formulário se você não definir Content-Type, então confira esse header se a API rejeitar a requisição convertida.

Meu comando é enviado para algum servidor?

Não. O parse e a geração de código rodam no seu navegador, e nada é enviado ou registrado. Mesmo assim, remova tokens e cookies antes de colar comandos em relatórios de bug ou código compartilhados.

Digite para buscar em todo o SDETRole.

Busca de texto completo com Pagefind · roda no seu navegador Abrir página de busca →