advanced scripting complex testing workflows postman
Obteniu més informació sobre Postman Advanced Scripting per a fluxos de treball de proves complexes:
En aquest tutorial, veurem alguns exemples bàsics d'ús de scripts avançats amb Postman que ens permetrien executar fluxos de treball de proves complexos.
Discutirem exemples com Passar dades d'una sol·licitud a una altra, encadenar sol·licituds, és a dir, controlar l'ordre d'execució de les sol·licituds dins de la col·lecció Postman, etc.
programari de full de temps gratuït per a petites empreses
=> Llegiu la sèrie de formació Easy Postman.
Què aprendreu:
- Transmissió de dades entre sol·licituds a Postman
- Sol·licitud d'encadenament a Carter
- Encadenament avançat de flux de treball amb Postman
- Consells importants
- Conclusió
- Lectura recomanada
Transmissió de dades entre sol·licituds a Postman
Passar dades entre sol·licituds és una extensió d’utilitzar diferents tipus de variables Postman. No és molt estrany que una sol·licitud d’API depengui de les dades de la resposta de la sol·licitud anterior.
Per construir aquest tipus de capacitats mitjançant Postman, simplement podem utilitzar variables Postman per establir el valor en funció de la resposta que es va rebre de les sol·licituds anteriors o anteriors.
Aquí teniu un vídeo tutorial:
Vegem un exemple per il·lustrar-ho.
Utilitzarem la mateixa API https://reqres.in amb els seus 2 punts finals, és a dir, Registra l'usuari i Obtén les dades d'usuari.
Utilitzarem el valor de l’identificador d’usuari retornat des del punt final de registre i l’utilitzarem per obtenir el mètode de detalls de l’usuari. Això s'aconseguirà emmagatzemant el valor userId en una variable d'entorn i utilitzant aquesta variable d'entorn a la sol·licitud consegüent.
Tingueu en compte que tots aquests scripts formaran part de la pestanya 'Proves' de la consola del creador de sol·licituds Postman.
Vegem com serà l'script:
# 1) Per al punt final d'usuari de registre, la resposta d'aquesta API serà la següent:
{ 'id': 4, 'token': 'QpwL5tke4Pnpja7X4' }
Ara, per executar la sol·licitud GET mitjançant l'identificador d'usuari de la resposta, hem d'obtenir el valor d'identificació de la resposta anterior. Utilitzarem el següent script per emmagatzemar el valor de l’identificador d’aquest JSON en una variable d’entorn anomenada ID d'usuari.
var jsonData = pm.response.json(); pm.environment.set('userId',jsonData.id)
Amb l'script anterior, el valor de l'ID s'emmagatzemarà a la variable d'entorn userId i es pot utilitzar el mateix mentre s'executa el punt final de sol·licitud d'usuari GET.
# 2) Per tant, la sol·licitud de l'usuari GET tindrà l'aspecte que es mostra a continuació.
https://reqres.in/api/users/{{userId}}
Un cop executada la primera sol·licitud, obtindrà el valor de l'ID d'usuari de la resposta i actualitzarà el valor de la variable d'entorn, de manera que es pugui utilitzar a la resta de sol·licituds.
Sol·licitud d'encadenament a Carter
Primer intentem entendre un cas d’ús bàsic de l’encadenament de sol·licituds i, a continuació, aprofundirem en com podem aconseguir l’encadenament de sol·licituds mitjançant Postman.
Penseu en un escenari del flux d’inici de sessió d’un lloc de comerç electrònic i valideu l’usuari que ha iniciat la sessió. Ara perquè un usuari iniciï la sessió, primer ha d’estar registrat al lloc i només llavors podrà iniciar la sessió. És l’ordre en què el lloc real de l’aplicació mòbil executa les trucades de l’API.
Mireu-ho des d’una perspectiva de prova d’integració. Per a una prova de l'API, primer hem de:
- Truqueu al punt final de registre de l'API perquè l'usuari es registri correctament.
- A continuació, truqueu al punt final d'inici de sessió i valideu les dades de l'usuari que ha iniciat la sessió.
Amb Postman, controlar l'ordre d'execució de la sol·licitud no és senzill. L’ordre d’execució per defecte és de dalt a baix, és a dir, l’ordre en què es declaren o es creen les sol·licituds a la col·lecció Postman.
La cadena de sol·licituds o l'ordre d'execució de la sol·licitud es canvien mitjançant el següent script:
postman.setNextRequest({{RequestName}});
Aquí és important tenir en compte que aquest script d’encadenament de sol·licituds s’ha d’afegir a l’escript de pre-sol·licitud o posterior a la sol·licitud (o a la pestanya de proves del creador de sol·licituds Postman) que activa el flux de treball un cop finalitzada la sol·licitud en execució.
Aquí {{RequestName}} és el nom de la sol·licitud real que es configura o es defineix a la col·lecció Postman.
Configurem una col·lecció Postman amb 4 sol·licituds diferents per il·lustrar el concepte d’encadenament de sol·licituds. Creeu una col·lecció nova amb 4 sol·licituds (utilitzarem la mateixa API https://reqres.in per il·lustrar-ho).
Les 4 sol·licituds de la col·lecció seran les següents:
# 1) POST sol·licitud de registre de l'usuari ( https://reqres.in/api/register ) amb el cos JSON de mostra amb els camps amb correu electrònic i contrasenya com es mostra a continuació.
{ 'email': 'eve.holt@reqres.in', 'password': 'pistol' }
# 2) Sol·licitud POST amb punt final d'inici de sessió ( https://reqres.in/api/login ) amb el mateix cos de sol·licitud que l’anterior.
# 3) Sol·licitud GET amb ID d’usuari 4.
El flux de treball que intentarem aconseguir és:
Registra't (POST) -> Detalls de l'usuari (GET) -> Inici de sessió (POST)
Independentment de la configuració d’aquestes sol·licituds, crearem un flux de treball perquè s’executin en aquest ordre.
Tingueu en compte que les sol·licituds s’anomenen respectivament Registrar usuari, Obtenir usuari i Usuari d’inici de sessió. És important que aquests noms de sol·licituds s’especifiquin exactament i correctament a l’script, en cas contrari, el flux de treball quedarà atrapat.
Vegem ara com són els scripts.
# 1) Sol·licitud POST per registrar-se.
postman.setNextRequest('Login User');
# 2) Sol·licitud POST per iniciar la sessió.
postman.setNextRequest('Get User');
# 3) Sol·licitud GET per obtenir dades d’usuari. Aquí és important que no vulguem que passi res després d’aquesta sol·licitud. Si no afegim cap script de flux de treball aquí, la col·lecció Postman està dissenyada per reprendre la següent sol·licitud per ordre lògic o per defecte.
Per tant, suposem que l’ordre original de les sol·licituds a la col·lecció és Registra't, obtén l'usuari i iniciar Sessió i el nostre flux de treball és a Obtenir usuari com que el control no sap quina sol·licitud seguirà, passarà a la següent sol·licitud lògica iniciar Sessió i en última instància donarà lloc a un bucle infinit.
Per evitar aquesta situació, és útil finalitzar el flux de treball amb,
postman.setNextRequest(null)
Sempre que es troba l'script anterior durant una execució de la col·lecció, l'execució del flux de treball s'aturarà i el corredor de la col·lecció finalitzarà.
En els casos en què hi hagi referències circulars de la següent sol·licitud, el corredor de col·lecció quedarà atrapat en un bucle infinit provocant una fuita de memòria tard o d’hora.
Tingueu en compte que per executar el flux de treball, haureu d’executar la primera sol·licitud o iniciar-la manualment, publicar-la i seguirà el flux de treball tal com es defineix als scripts de post-sol·licitud.
En altres paraules, la primera sol·licitud que cal executar com a part del flux de treball també hauria de ser la primera sol·licitud a la carpeta de col·lecció o col·lecció, de manera que l'execució del flux de treball comenci amb la primera sol·licitud, que també és la primera sol·licitud del flux de treball. .
Encadenament avançat de flux de treball amb Postman
L'exemple anterior que hem comentat és més aviat un flux de treball lineal on acabem de configurar el flux de treball entre un conjunt de sol·licituds de la mateixa col·lecció. La mateixa tècnica també es pot utilitzar per repetir una petició diverses vegades segons alguns valors de resposta o variables d'entorn.
Penseu en la possibilitat de fer una prova d’integració per a una aplicació de carretó de la compra, on heu de provar un escenari en què un usuari cerqui un producte i l’afegeixi al carretó i hagi de realitzar la mateixa operació 5 vegades, és a dir, fins que el carretó tingui un total de 5 articles finalment caixa.
millor eliminació gratuïta de programari maliciós per a Windows 7
Per tant, si escrivíssiu un flux lineal per a aquest tipus de prova, hauríeu repetit sol·licituds individuals a la col·lecció i, essencialment, la col·lecció tindria 5 sol·licituds per cercar un article i 5 sol·licituds per afegir productes al carretó i 1 sol·licitud de caixa.
Amb aquesta funcionalitat de flux de treball, podem evitar repetir les mateixes sol·licituds a la col·lecció i utilitzar els fluxos de treball per fer un bucle entre les sol·licituds.
Vegem una seqüència de flux per a aquest escenari (llavors es pot utilitzar / crear mitjançant el flux de treball Postman juntament amb una combinació de variables d'entorn).
També hi ha un exemple interessant d’utilitzar el flux de treball Postman per crear una llista de reproducció de Spotify. Consulteu aquí per obtenir més informació.
Consells importants
A continuació es detallen alguns consells importants que cal recordar mentre es treballa en la creació de fluxos de treball.
- Mentre s’executa una col·lecció si poques sol·licituds no tenen definit postment.setNextRequest, l’execució continua en l’ordre predeterminat de recollida. Per tant, generalment es recomana tenir Postman.setNextRequest en totes les sol·licituds o en cap d'elles.
- Quan s’executa amb col·leccions, si hi ha carpetes dins d’una col·lecció, Postman.setNextRequest es pot utilitzar només per a sol·licituds pertanyents a la mateixa carpeta, és a dir, la selecció de sol·licituds no pot anar més enllà de la carpeta actual.
- Postman.setNextRequest és l'última sentència que s'executa a l'script de post-sol·licitud o de sol·licitud prèvia, independentment d'on i de quin ordre s'esmenti.
En el cas de diversos valors trobats per a setNextRequest, el que s’esmenta a l’últim és efectiu.
Conclusió
En aquest tutorial, hem tractat pocs temes avançats de seqüències d’ordres com ara la combinació de variables d’entorn i locals per passar dades entre diferents sol·licituds al Postman i com podem controlar l’ordre d’execució de les sol·licituds mitjançant l’encadenament de Postman Request que permet funcions avançades com el bucle i la ramificació.
És una característica interessant per imitar el comportament d’una aplicació de la manera que interactuaria amb diferents API i és útil escriure fluxos de treball de extrem a extrem mitjançant proves d’integració amb punts finals de l’API.
=> Consulteu la guia de formació Perfect Postman aquí.
Lectura recomanada
- Les millors eines de prova de programari 2021 (Eines d'automatització de proves de control de qualitat)
- Prova de descàrrega de llibres electrònics
- Tutorial POSTMAN: proves d'API mitjançant POSTMAN
- Proves de rendiment dels serveis web mitjançant LoadRunner VuGen Scripting
- Com s'utilitza Postman per provar diferents formats de l'API?
- Prova de càrrega amb tutorials HP LoadRunner
- Diferència entre la prova d'escriptori, el servidor de clients i la prova web
- Sou un provador nou o avançat? Trobeu d’aquest joc de cartes