advanced scripting complex testing workflows postman
Meer informatie over geavanceerde scripts van Postman voor complexe testworkflows:
In deze tutorial zullen we enkele basisvoorbeelden zien van het gebruik van Advanced Scripting met Postman, waarmee we complexe testworkflows kunnen uitvoeren.
We zullen voorbeelden bespreken zoals het doorgeven van gegevens van het ene verzoek naar het andere, het koppelen van verzoeken, d.w.z. het controleren van de uitvoerende volgorde van de verzoeken binnen de Postman-collectie, enz.
beslissingsboomclassificatie in datamining
Lees de Easy Postman Training Series door.
Wat je leert:
- Gegevens doorgeven tussen verzoeken in Postman
- Verzoek Chaining In Postman
- Geavanceerde workflow-koppeling met postbode
- Belangrijke tips
- Gevolgtrekking
- Aanbevolen literatuur
Gegevens doorgeven tussen verzoeken in Postman
Het doorgeven van gegevens tussen verzoeken is een uitbreiding van het gebruik van verschillende soorten Postman-variabelen. Het is niet ongebruikelijk dat een API-verzoek afhankelijk is van gegevens uit het antwoord van het vorige verzoek.
Om dergelijke mogelijkheden met Postman te bouwen, kunnen we eenvoudig Postman-variabelen gebruiken om de waarde in te stellen afhankelijk van het antwoord dat is ontvangen van de voorgaande of eerdere verzoeken.
Hier is een video-tutorial:
Laten we een voorbeeld bekijken om dit te illustreren.
We zullen dezelfde API gebruiken https://reqres.in met zijn 2 eindpunten, d.w.z. gebruiker registreren en gebruikersgegevens ophalen.
We gebruiken de waarde van de gebruikers-id die wordt geretourneerd door het registratie-eindpunt en gebruiken deze om de gebruikersdetails-methode op te halen. Dit wordt bereikt door de userId-waarde op te slaan in een omgevingsvariabele en die omgevingsvariabele te gebruiken in het daaropvolgende verzoek.
Houd er rekening mee dat al dergelijke scripts deel zullen uitmaken van het tabblad 'Tests' van de Postman-console voor het maken van verzoeken.
Laten we eens kijken hoe het script eruit zal zien:
# 1) Voor Register user endpoint ziet de respons van deze API eruit zoals hieronder weergegeven.
Om het GET-verzoek nu uit te voeren met behulp van het gebruikers-ID van het antwoord, moeten we de ID-waarde uit het bovenstaande antwoord halen. We zullen het onderstaande script gebruiken om de waarde van de id van deze JSON op te slaan in een omgevingsvariabele met de naam gebruikersnaam.
Met het bovenstaande script wordt de waarde van de ID nu opgeslagen in de omgevingsvariabele userId en deze kan worden gebruikt tijdens het uitvoeren van het GET-gebruikersverzoekeindpunt.
#twee) Het GET-gebruikersverzoek ziet er dus uit zoals hieronder weergegeven.
https://reqres.in/api/users/{(userId}}
Zodra het eerste verzoek is uitgevoerd, haalt het de waarde van de UserID op uit het antwoord en werkt het de waarde van de omgevingsvariabele bij, zodat deze in de andere verzoeken kan worden gebruikt.
Verzoek Chaining In Postman
Laten we eerst proberen een basisgebruiksvoorbeeld van Request Chaining te begrijpen en daarna zullen we dieper ingaan op hoe we Request Chaining kunnen bereiken met Postman.
Overweeg een scenario van de inlogstroom van een eCommerce-site en valideer de ingelogde gebruiker. Om in te loggen, moet een gebruiker eerst bij de site zijn geregistreerd en pas daarna kunnen ze inloggen. Dat is de volgorde waarin de daadwerkelijke site van de mobiele app de API-aanroepen uitvoert.
Bekijk het vanuit het perspectief van een integratietest. Voor een API-test moeten we eerst:
- Roep het registratie-eindpunt van de API aan zodat de gebruiker zich kan registreren.
- Roep vervolgens het login-eindpunt aan en valideer de gegevens van de ingelogde gebruiker.
Met Postman is het niet eenvoudig om de volgorde van uitvoering van verzoeken te controleren. De standaarduitvoeringsvolgorde is van boven naar beneden, d.w.z. de volgorde waarin verzoeken worden gedeclareerd of aangemaakt in de Postman-collectie.
Verzoekketening of de volgorde van uitvoering van het verzoek wordt gewijzigd door het volgende script te gebruiken:
Het is belangrijk op te merken dat dit Request Chaining-script moet worden toegevoegd aan het pre-request-script of post-request-script (of het tests-tabblad in de Postman Request Builder), dat de workflow activeert zodra het uitgevoerde verzoek is voltooid.
Hier is {{RequestName}} de daadwerkelijke aanvraagnaam die is geconfigureerd of ingesteld in de Postman-collectie.
Laten we een Postman-collectie configureren met 4 verschillende verzoeken om het Request chaining-concept te illustreren. Maak een nieuwe collectie met 4 verzoeken (we zullen dezelfde API gebruiken https://reqres.in om dit te illustreren).
De 4 verzoeken in de collectie zijn als volgt:
# 1) POST verzoek om de gebruiker te registreren ( https://reqres.in/api/register ) met voorbeeld JSON-body met velden met e-mailadres en wachtwoord, zoals hieronder.
#twee) POST-verzoek met login-eindpunt ( https://reqres.in/api/login ) met dezelfde aanvraagtekst als hierboven.
# 3) GET-verzoek met gebruikers-ID 4.
De workflow die we zullen proberen te bereiken is:
Registreren (POST) -> Gebruikersgegevens (GET) -> Inloggen (POST)
Ongeacht hoe deze verzoeken zijn geconfigureerd, we zullen een workflow maken om ze in deze volgorde uit te voeren.
Houd er rekening mee dat de verzoeken respectievelijk de naam Register User, Get User en Login User zijn. Het is belangrijk om deze verzoeknamen exact en correct in het script te hebben gespecificeerd, anders loopt de workflow vast.
Laten we eens kijken hoe de scripts er nu uitzien.
# 1) POST-verzoek om te registreren.
#twee) POST-verzoek om in te loggen.
# 3) GET verzoek om gebruikersgegevens op te halen. Het is hierbij belangrijk dat we niet willen dat er iets gebeurt na dit verzoek. Als we hier geen workflowscript toevoegen, is de Postman-collectie ontworpen om het volgende verzoek in de logische of standaardvolgorde te hervatten.
Stel dus dat de oorspronkelijke volgorde van verzoeken in de collectie is Registreer, krijg gebruiker en Log in en onze workflow is op Gebruiker ophalen aangezien de besturing niet weet welk verzoek als volgende moet worden verzonden, gaat het naar het volgende logische verzoek Log in en zal uiteindelijk resulteren in een oneindige lus.
Om een dergelijke situatie te voorkomen, is het handig om de workflow te beëindigen met,
Telkens wanneer het bovenstaande script wordt aangetroffen tijdens het uitvoeren van een verzameling, wordt de uitvoering van de werkstroom gestopt en wordt de verzamelingsmanager beëindigd.
In de gevallen waarin er cirkelvormige verwijzingen zijn naar het volgende verzoek, zal de verzamelingsrunner vast komen te zitten in een oneindige lus, waardoor vroeg of laat een geheugenlek ontstaat.
Houd er rekening mee dat om de workflow uit te voeren, u het eerste of startverzoek handmatig moet uitvoeren, post dat, het zal de workflow volgen zoals gedefinieerd in de post-request scripts.
Met andere woorden, het eerste verzoek dat moet worden uitgevoerd als onderdeel van de workflow, moet ook het eerste verzoek in de collectie- of verzamelingsmap zijn, zodat de uitvoering van de workflow begint met het eerste verzoek dat ook het eerste verzoek van de workflow is. .
Geavanceerde workflow-koppeling met postbode
Het bovenstaande voorbeeld dat we hebben besproken, is meer een lineaire workflow waarbij we zojuist een workflow hebben geconfigureerd tussen een reeks verzoeken in dezelfde verzameling. Dezelfde techniek kan ook worden gebruikt om een verzoek meerdere keren te herhalen op basis van enkele responswaarden of omgevingsvariabelen.
Overweeg een integratietest voor een winkelwagen-app, waarbij u moet testen op een scenario waarin een gebruiker naar een product zoekt en het aan de winkelwagen toevoegt en dezelfde bewerking 5 keer moet uitvoeren, dwz totdat de winkelwagen in totaal 5 items heeft en dan eindelijk afrekenen.
Dus als je een lineaire stroom zou schrijven voor dit soort test, zou je individuele verzoeken in de verzameling hebben herhaald en in feite zou de verzameling 5 verzoeken hebben om een item te zoeken, en 5 verzoeken om producten aan de winkelwagen toe te voegen en 1 verzoek om af te rekenen.
Met deze workflowfunctionaliteit kunnen we voorkomen dat dezelfde verzoeken in de collectie worden herhaald en kunnen we de workflows gebruiken om tussen de verzoeken door te lussen.
Laten we eens kijken naar een stroomvolgorde voor een dergelijk scenario (deze kan dan worden gebruikt / gemaakt met behulp van de Postman-workflow in combinatie met een combinatie van omgevingsvariabelen).
Er is ook een interessant voorbeeld van het gebruik van de Postman-workflow om een Spotify-afspeellijst te maken. Verwijzen hier voor meer informatie.
Belangrijke tips
Hieronder vindt u enkele belangrijke tips om te onthouden tijdens het werken aan het bouwen van workflows.
- Tijdens het uitvoeren van een verzameling als voor weinig verzoeken geen postment.setNextRequest is ingesteld, gaat de uitvoering door in de standaardvolgorde van verzameling. Het wordt dus over het algemeen aanbevolen om Postman.setNextRequest in alle verzoeken of in geen van deze te hebben.
- Als er bij het uitvoeren van verzamelingen mappen zijn binnen een verzameling, kan Postman.setNextRequest alleen worden gebruikt voor verzoeken die tot dezelfde map behoren, d.w.z. de selectie van verzoeken kan niet verder gaan dan de huidige map.
- De Postman.setNextRequest is de laatste instructie die wordt uitgevoerd in het post-request of pre-request script, ongeacht waar en in welke volgorde deze wordt vermeld.
In het geval dat er meerdere waarden zijn gevonden voor setNextRequest, is degene die in de laatste wordt genoemd van kracht.
Gevolgtrekking
In deze zelfstudie hebben we enkele geavanceerde scriptingonderwerpen behandeld, zoals het combineren van omgevings- en lokale variabelen om gegevens tussen verschillende verzoeken in de Postman door te geven en hoe we de uitvoeringsvolgorde van de verzoeken kunnen regelen met behulp van Postman Request-chaining die geavanceerde mogelijkheden zoals looping en branching mogelijk maakt.
Het is een coole functie om het gedrag van een applicatie na te bootsen op de manier waarop deze zou communiceren met verschillende API's, en het is handig om end-to-end workflows te schrijven met behulp van integratietests met API-eindpunten.
Bekijk hier de perfecte trainingsgids voor postbode.
beste sites om nagesynchroniseerde anime te bekijken
Aanbevolen literatuur
- Beste softwaretesttools 2021 (QA Test Automation Tools)
- Primer eBook downloaden testen
- POSTMAN-zelfstudie: API-testen met POSTMAN
- Prestatietests van webservices met behulp van LoadRunner VuGen-scripts
- Hoe Postman te gebruiken voor het testen van verschillende API-indelingen?
- Laadtests met HP LoadRunner-zelfstudies
- Verschil tussen Desktop, Client Server Testing en Web Testing
- Bent u een nieuwe of gevorderde tester? Vind uit dit kaartspel