Postman è uno degli strumenti più popolari per sviluppare e testare le API. Lo utilizzo dal 2017 e imparare a usare Postman per testare le API mi ha davvero aiutato ad accelerare il mio processo di testing.
In questo articolo ti guiderò, passo dopo passo, mostrando come validare le richieste API utilizzando Postman. Alla fine, dovresti essere in grado di creare i tuoi test automatizzati.
Ma prima di immergerci nel vero e proprio tutorial su Postman, lascia che ti spieghi alcune cose sulle API.
Cosa sono le API?
API è l'acronimo di Application Programming Interface. Non è ancora molto chiaro, vero? 😅 Lascia che ti spieghi meglio:
Un’API è un’interfaccia che definisce i modi con cui script o programmi possono comunicare con un’applicazione o un servizio. Funzionano condividendo dati e informazioni tra applicazioni, sistemi e dispositivi.
L’API più comune al momento è la REST API, che userò nel resto di questo tutorial di testing API con Postman. REST è anche l'acronimo di REpresentational State Transfer. Le API REST si basano su principi come la comunicazione client-server, interfacce uniformi per dialogare tra sistemi, operazioni senza stato e altro ancora.
La comunicazione viene effettuata tramite richieste e risposte HTTP.
L'anatomia delle richieste HTTP
Le richieste HTTP hanno 4 componenti principali:
- L’URL
- L’endpoint, che rappresenta la risorsa specifica con cui vogliamo interagire.
- Il metodo HTTP—i metodi HTTP dicono al server se vogliamo recuperare informazioni oppure quali modifiche vogliamo che l’applicazione esegua. Oggi vedremo le operazioni CRUD di base:
- Crea: POST
- Leggi: GET
- Aggiorna: PUT
- Elimina: DELETE
- Il corpo della richiesta. Questo è opzionale, a seconda del metodo che andiamo a utilizzare. Useremo il formato JSON (JavaScript Object Notation) in questo tutorial su Postman.
Codici di risposta HTTP
Quando effettuiamo una richiesta HTTP, il server invia un codice di risposta, che ci dice se la richiesta ha avuto successo o meno. Le principali categorie di codici di risposta HTTP sono:
- 1xx: risposta informativa
- 2xx: successo
- 3xx: redirezione
- 4xx errore del client
- 5xx errore del server
Amo molto questa rappresentazione visiva di Julia Evans:

Puoi trovare una lista completa dei codici di risposta qui, oppure, se preferisci, spiegati da gatti, qui 🐱👓
Ok, penso che abbiamo chiarito abbastanza per iniziare con il tutorial vero e proprio—ora vediamo come usare Postman per testare le API!
Come usare Postman per testare le API (passo passo)
Puoi usare Postman in due modi: direttamente dal browser (sarà necessario creare un account per farlo), oppure installandolo sulla tua macchina locale—in questo caso, avere un account è opzionale.
Io preferisco installarlo, semplicemente perché non mi piace avere troppe schede del browser aperte, quindi seguirò questa strada.
Questo è un tutorial per principianti, quindi utilizzerò alcuni casi di test semplici per mostrare come usare Postman per testare un'API. L'app di demo che userò è Swagger Petstore e lo scenario che testerò è:
- Aggiungi un nuovo animale al negozio usando lo stato 'pending'
- Aggiorna lo stato dell'animale a 'available'
- Verifica che le informazioni sull'animale siano state aggiornate
- Elimina l'animale
- Conferma che l'animale sia stato eliminato
Ok, iniziamo!

La prima richiesta HTTP in Postman
Postman permette di raggruppare le richieste API in collezioni. Si tratta di gruppi di richieste HTTP correlate. Crea subito una nuova collezione per tutte le richieste che userai nei test:

OK, ora hai una collezione vuota.
Clicca sull’URL 'Aggiungi una richiesta' o sul pulsante '+' nella lista delle schede:

La pagina Swagger UI funge da documentazione per l'API.
La risorsa (endpoint) che ti serve per creare un nuovo animale è '/pet' e il metodo HTTP è POST.
Nella tabella del modello, puoi vedere l’oggetto che devi inviare come corpo della richiesta e i tipi di dati per ogni valore:

Useremo il formato JSON per inviare il corpo della richiesta, quindi abilita il pulsante radio 'raw' e seleziona JSON dal menu a discesa.
Il corpo della richiesta dovrebbe essere simile a questo:
{
"id": 0,
"category": {
"id": 0,
"name": "dog"
},
"name": "Spike",
"photoUrls": [
"string"
],
"tags": [
{
"id": 0,
"name": "bulldog"
}
],
"status": "pending"
}
Puoi facilmente aggiungere il resto dei dettagli nella nuova scheda della richiesta:

Per creare questo nuovo animale sul server, clicca sul pulsante Invia.
Se tutto va bene, riceverai una risposta di successo e il corpo della risposta conterrà alcune informazioni sull'animale, compreso il suo ID.
Ci servirà per i passaggi successivi:

Il prossimo passo è aggiornare le informazioni dell’animale.
Per questo bisogna accedere alla stessa risorsa, '/pet', ma inviare una richiesta con il metodo HTTP PUT.
Puoi vedere quali informazioni devi inviare nel corpo della richiesta:

Quindi, crea una nuova richiesta, utilizzando la stessa URL della richiesta, seleziona il metodo PUT e invia lo stesso body della richiesta, ad eccezione del valore di stato che deve essere cambiato in 'available', e usa l'ID dalla risposta precedente:
{
"id": <inserisci qui l'ID>,
"category": {
"id": 0,
"name": "dog"
},
"name": "Spike",
"photoUrls": [
"string"
],
"tags": [
{
"id": 0,
"name": "bulldog"
}
],
"status": "available"
}
La risposta dovrebbe di nuovo essere 200 OK. Successivamente, leggiamo le informazioni dell'animale domestico, per verificare che lo stato sia stato aggiornato correttamente.
Il metodo HTTP per questa operazione è GET e la richiesta accetta l'ID come parametro:

La risposta contiene tutti i dati dell'animale, incluso lo stato che ora ha come valore 'available':

La richiesta di eliminazione verrà eseguita alla stessa esatta URL del GET (compreso il parametro ID), ma il metodo HTTP selezionato sarà DELETE:

Ancora una volta, la richiesta dovrebbe avere successo e la risposta HTTP sarà 200:

Se invii nuovamente la richiesta GET per lo stesso ID dell'animale, riceverai una risposta HTTP 404, perché l’animale non si trova più sul server:

Aggiunta dei test in Postman
Con i passaggi precedenti, hai eseguito tutti gli step dello scenario di test, ma ogni risultato andava verificato manualmente, controllando i codici e i corpi delle risposte.
Vediamo ora come automatizzare i test API utilizzando Postman, così da non dover più effettuare questi controlli manualmente.
Inizia con la prima richiesta, la POST, e clicca sulla scheda Tests della richiesta.
Scegli dal lato destro lo snippet 'Status code: Code is 200'. Gli snippet in Postman sono script predefiniti che puoi usare così da non dover scrivere manualmente il codice. Ogni riga di codice che inseriamo nella scheda Tests della richiesta verrà eseguita dopo che la richiesta è stata inviata.
Puoi cambiare il nome del test in qualcosa di più descrittivo (ad esempio, 'La creazione dell’animale è avvenuta con successo').
Invia di nuovo la richiesta e questa volta vedrai che la scheda Test Results della risposta mostra 1/1 test superato, e il nome del test passato:

Puoi aggiungere questo snippet anche alle richieste PUT e DELETE.
Per verificare il valore dello stato nella risposta della richiesta GET, usa lo snippet ‘Response body: JSON value check’:
pm.test("Il nome del tuo test", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
Quello che fa questo frammento di codice è salvare la risposta in una variabile chiamata jsonData, che verrà poi analizzata per leggere il valore di un attributo e confrontarlo con un valore atteso.
Per noi, questo significa che l’attributo 'status' deve avere il valore 'available'. Il test quindi dovrebbe essere così:
pm.test("Lo status dell'animale è 'available'", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.status).to.eql("available");
});
E per il controllo finale, che conferma che l’animale è stato eliminato eseguendo nuovamente la richiesta GET, possiamo duplicare la richiesta GET iniziale e aggiungere un test che questa volta validi il codice di risposta HTTP a 404:

Puoi spostare le richieste all'interno della collection trascinandole e rilasciandole.

Utilizzare le variabili in Postman
Probabilmente avrai notato che dovevamo copiare e incollare manualmente l’ID dalla richiesta POST a tutte le richieste successive. E se ci fosse un modo più semplice per farlo?
La buona notizia è che c’è! Possiamo usare le variabili di Postman per memorizzare valori riutilizzabili, così se i valori devono cambiare, possiamo cambiarli in un solo posto, nel modo in cui vogliamo fare con tutti i test automatizzati.
Le variabili di Postman hanno 3 ambiti di utilizzo:
- Globali: variabili che possono essere usate da qualsiasi ambiente e da qualsiasi collezione
- Ambiente: variabili salvate a livello di ambiente. Non ho utilizzato ambienti per questo tutorial, ma è utile sapere che Postman ci permette di creare ambienti diversi per i vari contesti su cui lavoriamo. Ad esempio, ambienti separati per Dev, UAT e Produzione
- Collezione: queste variabili sono memorizzate a livello di collezione e sono accessibili da tutte le richieste nella collezione.
Ci sono diversi modi per impostare le variabili di collezione.
Il modo più semplice è crearla direttamente dalla collezione.
Per farlo, clicca sul nome della collezione, seleziona la scheda delle variabili e inserisci il nome e il valore della variabile:

Per usare questa variabile, sostituisci il valore originale nelle richieste con il nome della variabile racchiuso tra due parentesi graffe, così: {{petId}}
Devi utilizzarla all'interno dei body delle richieste POST e PUT, per il parametro “id”, in questo modo:
"id": {{petId}},
E nell’URL delle richieste GET e DELETE, così: https://petstore.swagger.io/v2/pet/{{petId}}
Puoi vedere la versione finale della collezione qui.
Esecuzione della collezione Postman
Ed ecco la parte migliore! Lo scopo di questo tutorial era mostrarti come eseguire test automatizzati utilizzando Postman. Tutto ciò che abbiamo fatto prima era in preparazione a questa fase.
Per eseguire automaticamente i test, fai clic con il tasto destro sul nome della collezione, o passa sopra, poi clicca sul menu a tre puntini accanto al nome e seleziona ‘Esegui collezione’.

Questo aprirà il Collection Runner:

In questa schermata puoi selezionare quali richieste inviare, puoi cambiare il loro ordine, puoi eseguire la raccolta più volte (aumentando il numero di Iterazioni), oppure puoi aggiungere dei ritardi tra le richieste.
Per ora puoi semplicemente lasciare i valori predefiniti e cliccare sul pulsante "Esegui". Al termine dell'esecuzione, sarai in grado di vedere i risultati dei test per tutti gli scenari che volevamo testare, con un semplice clic:

E questo è tutto! Se hai seguito tutti i passaggi di questo articolo, dovresti avere i tuoi primi test automatizzati API Postman! 🚀
Conclusione
Postman è uno strumento molto utile quando si tratta di testare le API e questo articolo rappresenta solo una breve introduzione. Tuttavia, siamo riusciti a coprire come inviare richieste HTTP, leggere le risposte, creare test e controllare automaticamente i risultati dei test.
Se ti è piaciuto questo articolo, iscriviti alla newsletter QA Lead per restare aggiornato su tutte le novità e le tendenze nel testing software.

