Vai al contenuto
SDETRole
SDETRole

API testing

Convertitore da cURL a codice

Converti un comando curl in codice Playwright, REST Assured o Python.

Funziona interamente nel tuo browser Senza registrazione

cURL command

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

Code

Informazioni sullo strumento

Documentazione delle API, bug report e il “Copy as cURL” del browser ti danno tutti un comando curl, ma la tua suite di test ha bisogno di codice. Questo convertitore analizza il comando come farebbe una shell (apici singoli e doppi, stringhe $'…' e continuazioni di riga di bash, cmd e PowerShell) e lo trasforma in un test Playwright che usa la fixture request, in una catena given/when/then di REST Assured, in una chiamata Python requests o in un fetch JavaScript. Mantiene metodo, URL e query string, header, Basic auth da -u, body JSON, form e raw, e le opzioni -k e --max-time. Le opzioni che non può convertire, come gli upload multipart (-F) o i certificati client, vengono elencate invece di essere scartate in silenzio, così sai cosa aggiungere a mano. Tutto gira nel browser e nulla di ciò che incolli viene inviato.

Come si usa

  1. Incolla un comando curl nel pannello di sinistra, oppure clicca “Load sample”.
  2. Scegli Playwright, REST Assured, Python requests o fetch. Il codice si aggiorna mentre scrivi.
  3. Copia il codice nel tuo test, poi sostituisci le asserzioni d’esempio con quelle che servono al test. Per modificare prima la richiesta, clicca “Edit in cURL generator”.

Trasformare l’output in un vero test

Il codice convertito invia la stessa richiesta, ma una richiesta non è un test finché non verifica qualcosa. Parti dallo status (await expect(response).toBeOK() in Playwright, then().statusCode(200) in REST Assured), poi verifica i campi che dimostrano il comportamento, non l’intero body. Id, timestamp e token cambiano da un’esecuzione all’altra, quindi controllane il tipo o il formato invece del valore.

Togli i segreti dal codice prima del commit. Un comando copiato dal browser contiene spesso un cookie di sessione o un bearer token attivi: leggili invece da una variabile d’ambiente o da una fixture di login, e ruota il token se è stato condiviso.

Cosa aggiunge “Copy as cURL” e cosa puoi eliminare

  • Header del browser come sec-ch-ua, sec-fetch-*, user-agent, accept-language e priority. Le API raramente ne hanno bisogno e rendono il test più difficile da leggere.
  • Header Cookie con la tua sessione. Sostituiscili con un vero passaggio di autenticazione, come uno storageState di Playwright o una richiesta di token in una fixture.
  • Referer e Origin. Tienili solo se l’API li controlla, ad esempio per la protezione CSRF.
  • Le varianti per Windows (“Copy as cURL (cmd)” o “(PowerShell)”) usano un quoting diverso, e il convertitore le capisce entrambe.

Convertitore da cURL a codice: domande frequenti

Come converto un curl in un test API Playwright?

Incolla il comando e scegli Playwright. L’output è un test che usa la fixture request integrata: request.post(url, { headers, data }) seguito da expect(response.ok()).toBeTruthy(). Sostituisci quest’ultima con asserzioni sullo status e sui campi che interessano al test. Si esegue con npx playwright test e non richiede un browser, quindi è abbastanza veloce per controlli API nella stessa suite dei test UI.

Quali opzioni di curl sono supportate?

-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 (inviato come header Cookie), oltre a quoting e continuazioni di riga per bash, cmd e PowerShell. Qualsiasi altra opzione, come gli upload multipart -F o --cert, viene segnalata con un avviso così puoi aggiungerla a mano.

Perché la richiesta convertita si comporta diversamente da curl?

Di solito per i redirect o per i valori predefiniti. curl segue i redirect solo con -L, mentre Playwright, REST Assured, Python requests e fetch li seguono per impostazione predefinita. curl inoltre invia un body POST come dati di form a meno che non imposti il Content-Type, quindi controlla quell’header se l’API rifiuta la richiesta convertita.

Il mio comando viene inviato a un server?

No. Analisi e generazione del codice avvengono nel browser, e nulla viene caricato o registrato. Rimuovi comunque token e cookie prima di incollare comandi in bug report o codice condivisi.

Scrivi per cercare in tutto SDETRole.

Ricerca full-text con Pagefind · funziona nel tuo browser Apri la pagina di ricerca →