advanced scripting complex testing workflows postman
Informazioni sullo scripting avanzato di Postman per flussi di lavoro di test complessi:
In questo tutorial, vedremo alcuni esempi di base dell'utilizzo di Advanced Scripting con Postman che ci consentirebbero di eseguire flussi di lavoro di test complessi.
Discuteremo esempi come il passaggio di dati da una richiesta a un'altra, il concatenamento delle richieste, ovvero il controllo dell'ordine di esecuzione delle richieste all'interno della raccolta Postman, ecc.
miglior software driver per Windows 10
=> Leggi la serie di formazione Easy Postman.
Cosa imparerai:
- Passaggio di dati tra richieste in Postman
- Richiedi concatenamento nel postino
- Concatenamento avanzato del flusso di lavoro con Postman
- Suggerimenti importanti
- Conclusione
- Lettura consigliata
Passaggio di dati tra richieste in Postman
Il passaggio di dati tra le richieste è un'estensione dell'utilizzo di diversi tipi di variabili Postman. Non è raro che una richiesta API dipenda dai dati della risposta della richiesta precedente.
Per creare questo tipo di funzionalità utilizzando Postman, possiamo semplicemente utilizzare le variabili Postman per impostare il valore in base alla risposta ricevuta dalle richieste precedenti o precedenti.
Ecco un video tutorial:
Diamo un'occhiata a un esempio per illustrarlo.
Useremo la stessa API https://reqres.in con i suoi 2 endpoint, ovvero Registra utente e Ottieni i dettagli dell'utente.
Useremo il valore dell'id utente restituito dall'endpoint di registrazione e lo useremo per ottenere il metodo dei dettagli dell'utente. Ciò sarà ottenuto memorizzando il valore userId in una variabile di ambiente e utilizzando tale variabile di ambiente nella richiesta conseguente.
Tieni presente che tutti questi script faranno parte della scheda 'Test' della console del generatore di richieste di Postman.
Vediamo come apparirà lo script:
# 1) Per l'endpoint utente di registrazione, la risposta di questa API apparirà come mostrato di seguito.
{ 'id': 4, 'token': 'QpwL5tke4Pnpja7X4' }
Ora, per eseguire la richiesta GET utilizzando l'id utente dalla risposta, dobbiamo ottenere il valore id dalla risposta precedente. Useremo lo script seguente per memorizzare il valore dell'id da questo JSON in una variabile di ambiente denominata ID utente.
var jsonData = pm.response.json(); pm.environment.set('userId',jsonData.id)
Con lo script precedente, il valore dell'ID verrà ora memorizzato nella variabile di ambiente userId e lo stesso può essere utilizzato durante l'esecuzione dell'endpoint di richiesta dell'utente GET.
#Due) Quindi la richiesta dell'utente GET apparirà come mostrato di seguito.
https://reqres.in/api/users/{[userId}}
Una volta eseguita la prima richiesta, recupererà il valore dello UserID dalla risposta e aggiornerà il valore della variabile di ambiente, in modo che possa essere utilizzata nelle altre richieste.
Richiedi concatenamento nel postino
Proviamo prima a capire un caso d'uso di base del concatenamento di richieste, quindi approfondiremo come possiamo ottenere il concatenamento di richieste utilizzando Postman.
Considera uno scenario, del flusso di accesso di un sito eCommerce e convalida l'utente che ha effettuato l'accesso. Ora, affinché un utente possa accedere, deve essere prima registrato al sito e solo allora potrà accedere. Questo è l'ordine in cui il sito effettivo dell'app mobile esegue le chiamate API.
Guardalo da una prospettiva di test di integrazione. Per un test API, dobbiamo prima:
- Chiama l'endpoint di registrazione dell'API per consentire all'utente di registrarsi correttamente.
- Quindi chiama l'endpoint di accesso e convalida i dettagli dell'utente che ha effettuato l'accesso.
Con Postman, controllare l'ordine di esecuzione della richiesta non è semplice. L'ordine di esecuzione predefinito è dall'alto verso il basso, ovvero l'ordine in cui le richieste vengono dichiarate o create nella raccolta Postman.
Il concatenamento delle richieste o l'ordine di esecuzione delle richieste vengono modificati utilizzando lo script seguente:
postman.setNextRequest({{RequestName}});
È importante notare qui che questo script di concatenamento delle richieste deve essere aggiunto allo script di pre-richiesta o allo script di post-richiesta (o alla scheda dei test nel generatore di richieste Postman) che attiva il flusso di lavoro una volta completata la richiesta in esecuzione.
Qui {{RequestName}} è il nome della richiesta effettivo configurato o impostato nella raccolta Postman.
Configuriamo una raccolta Postman con 4 diverse richieste per illustrare il concetto di concatenamento delle richieste. Crea una nuova raccolta con 4 richieste (useremo la stessa API https://reqres.in per illustrare questo).
Le 4 richieste nella collezione saranno le seguenti:
# 1) POST richiesta di registrazione dell'utente ( https://reqres.in/api/register ) con corpo JSON di esempio con campi con email e password come di seguito.
{ 'email': 'eve.holt@reqres.in', 'password': 'pistol' }
#Due) Richiesta POST con endpoint di accesso ( https://reqres.in/api/login ) con lo stesso corpo di richiesta di cui sopra.
# 3) GET richiesta con userID 4.
Il flusso di lavoro che cercheremo di ottenere è:
Registrati (POST) -> Dettagli utente (GET) -> Login (POST)
Indipendentemente dalla configurazione di queste richieste, creeremo un flusso di lavoro per eseguirle in questo ordine.
Si noti che le richieste sono denominate rispettivamente come Register User, Get User e Login User. È importante che i nomi di queste richieste siano specificati esattamente e correttamente nello script, altrimenti il flusso di lavoro si bloccherà.
Vediamo ora come appaiono gli script.
# 1) POST richiesta di registrazione.
postman.setNextRequest('Login User');
#Due) Richiesta POST per accedere.
postman.setNextRequest('Get User');
# 3) GET richiesta per ottenere i dettagli dell'utente. È importante qui che non vogliamo che accada nulla dopo questa richiesta. Se non aggiungiamo qui alcuno script del flusso di lavoro, la raccolta Postman è progettata per riprendere la richiesta successiva nell'ordine logico o predefinito.
Quindi, supponiamo che l'ordine originale delle richieste nella raccolta sia Registrati, ottieni utente e Login e il nostro flusso di lavoro è a Ottieni utente poiché il controllo non sa quale richiesta andare dopo, passerà alla successiva richiesta logica Login e alla fine si tradurrà in un ciclo infinito.
Per evitare una situazione del genere, è utile terminare il flusso di lavoro utilizzando,
postman.setNextRequest(null)
Ogni volta che lo script precedente viene rilevato durante l'esecuzione di una raccolta, l'esecuzione del flusso di lavoro verrà interrotta e il runner della raccolta terminerà.
Nei casi in cui sono presenti riferimenti circolari della richiesta successiva, il runner di raccolta si bloccherà in un ciclo infinito provocando così una perdita di memoria prima o poi.
Si prega di notare che per eseguire il flusso di lavoro, sarà necessario eseguire manualmente la prima o la richiesta iniziale, postare quella, seguirà il flusso di lavoro definito negli script di post-richiesta.
In altre parole, la prima richiesta che deve essere eseguita come parte del flusso di lavoro dovrebbe essere anche la prima richiesta nella raccolta o cartella della raccolta, in modo che l'esecuzione del flusso di lavoro inizi con la prima richiesta che è anche la prima richiesta del flusso di lavoro .
Concatenamento avanzato del flusso di lavoro con Postman
L'esempio precedente di cui abbiamo discusso è più un flusso di lavoro lineare in cui abbiamo appena configurato il flusso di lavoro tra un insieme di richieste nella stessa raccolta. La stessa tecnica può essere utilizzata anche per ripetere più volte una richiesta in base ad alcuni valori di risposta o variabili di ambiente.
Considera il test di integrazione per un'app del carrello, in cui devi testare uno scenario in cui un utente cerca un prodotto e lo aggiunge al carrello e deve eseguire la stessa operazione 5 volte, ovvero fino a quando il carrello non ha un totale di 5 articoli e poi finalmente il checkout.
Quindi, se dovessi scrivere un flusso lineare per questo tipo di test, avresti ripetuto singole richieste nella collezione e essenzialmente la collezione avrebbe 5 richieste per la ricerca di un articolo e 5 richieste per l'aggiunta di prodotti al carrello e 1 richiesta di checkout.
Con questa funzionalità del flusso di lavoro, possiamo evitare di ripetere le stesse richieste nella raccolta e utilizzare i flussi di lavoro per eseguire il ciclo tra le richieste.
Vediamo una sequenza di flusso per un tale scenario (quindi questa può essere utilizzata / creata utilizzando il flusso di lavoro di Postman insieme a una combinazione di variabili di ambiente).
C'è anche un interessante esempio di utilizzo del flusso di lavoro di Postman per creare una playlist di Spotify. Fare riferimento Qui per maggiori informazioni.
che cosa è un buon downloader di musica per Android
Suggerimenti importanti
Di seguito sono riportati alcuni suggerimenti importanti da ricordare mentre si lavora alla creazione di flussi di lavoro.
- Durante l'esecuzione di una raccolta se poche richieste non hanno impostato postment.setNextRequest, l'esecuzione continua nell'ordine predefinito di raccolta. Quindi è generalmente consigliato avere Postman.setNextRequest in tutte le richieste o in nessuna di esse.
- Quando si esegue con le raccolte, se sono presenti cartelle all'interno di una raccolta, Postman.setNextRequest può essere utilizzato solo per le richieste appartenenti alla stessa cartella, ovvero la selezione della richiesta non può andare oltre la cartella corrente.
- Postman.setNextRequest è l'ultima istruzione che viene eseguita nello script post-richiesta o pre-richiesta indipendentemente da dove e in quale ordine è menzionato.
Nel caso di più valori trovati per setNextRequest, quello menzionato nell'ultimo è efficace.
Conclusione
In questo tutorial, abbiamo trattato alcuni argomenti di scripting avanzati come la combinazione di variabili di ambiente e locali per passare dati tra diverse richieste nel Postman e come possiamo controllare l'ordine di esecuzione delle richieste utilizzando Postman Request chaining che consente funzionalità avanzate come looping e branching.
È una funzionalità interessante per imitare il comportamento di un'applicazione nel modo in cui interagirebbe con API diverse ed è utile per scrivere flussi di lavoro end-to-end utilizzando test di integrazione con endpoint API.
=> Dai un'occhiata alla guida alla formazione del postino perfetto qui.
Lettura consigliata
- Migliori strumenti di test del software 2021 [Strumenti di automazione del test QA]
- Download dell'eBook Testing Primer
- Esercitazione POSTMAN: test API utilizzando POSTMAN
- Test delle prestazioni dei servizi Web mediante LoadRunner VuGen Scripting
- Come utilizzare Postman per testare diversi formati API?
- Test di carico con HP LoadRunner Tutorial
- Differenza tra desktop, test server client e test Web
- Sei un tester nuovo o avanzato? Trova da questo gioco di carte