Skip to main content

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.

Want more from The CTO Club?

Create a free account to finish this piece and join a community of CTOs and engineering leaders sharing real-world frameworks, tools, and insights for designing, deploying, and scaling AI-driven technology.

This field is for validation purposes and should be left unchanged.
Name*

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.
Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

This field is for validation purposes and should be left unchanged.
Name*

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:

image of http status code
Elenco dei più comuni codici di risposta HTTP (Fonte)

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!

start api test gif

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:

screenshot richiesta http in postman
Puoi creare una nuova collezione cliccando sul pulsante Nuovo, selezionando Collezione e inserendo un nome per quella collezione.

OK, ora hai una collezione vuota.

Clicca sull’URL 'Aggiungi una richiesta' o sul pulsante '+' nella lista delle schede:

screenshot aggiunta richiesta http in postman
Si aprirà una nuova scheda dove puoi aggiungere gli elementi della richiesta che ho menzionato prima.

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:

screenshot formato json

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:

screenshot nuova scheda richiesta http
Quello che abbiamo fatto qui è creare un nuovo oggetto, per un animale chiamato Spike, appartenente a una categoria chiamata 'dog', con il tag 'bulldog' e lo stato 'pending'. 

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:

screenshot creazione nuovo animale

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:

update pet info screenshot

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:

http method id parameter screenshot

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

response contains pet data screenshot

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

http method delete request

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

http method delete request success screenshot

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:

404 http request screenshot

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:

test result tab screenshot

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:

api tests screenshot

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

api tests request screenshot

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:

api test collection screenshot

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’. 

api test run collection screenshot

Questo aprirà il Collection Runner:

collection runner screenshot

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:

screenshot di tutti i test API

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.