advanced scripting complex testing workflows postman
Сазнајте више о Постмановом напредном скриптирању за сложене токове тестирања:
У овом упутству видећемо неке основне примере употребе напредног скриптирања са поштаром који би нам омогућили покретање сложених процеса тестирања.
Разговараћемо о примерима као што су прослеђивање података из једног захтева у други, ланци захтева, тј. Контрола редоследа извршавања захтева унутар колекције поштара итд.
најбоље бесплатно скенирање и поправка рачунара
=> Прочитајте серију Еаси Траининг Постман.
Шта ћете научити:
- Прослеђивање података између захтева у поштару
- Захтев за ланчење поштара
- Напредно повезивање токова посла са поштаром
- Важни савети
- Закључак
- Препоручено читање
Прослеђивање података између захтева у поштару
Преношење података између захтева је продужетак коришћења различитих врста Постман променљивих. Није ретко када захтев за АПИ зависи од података из одговора на претходни захтев.
Да бисмо изградили такву врсту могућности користећи Постман, можемо једноставно користити Постман променљиве за подешавање вредности у зависности од одговора који је примљен из претходних или претходних захтева.
Ево видео упутства:
Погледајмо пример да бисмо то илустровали.
Користићемо исти АПИ хттпс://рекрес.ин са своје 2 крајње тачке, тј. Регистрирајте корисника и Преузмите детаље о кориснику.
Користићемо вредност корисничког ИД-а враћену из региструјуће крајње тачке и користићемо је за добијање методе корисничких детаља. То ће се постићи чувањем вредности усерИд у променљивој околине и употребом те променљиве окружења у следећем захтеву.
Имајте на уму да ће све такве скрипте бити део картице „Тестови“ на конзоли Градитеља захтева за поштаре.
Погледајмо како ће скрипта изгледати:
# 1) За крајњу тачку Регистрирај корисника, одговор овог АПИ-ја ће изгледати као што је приказано у наставку.
{ 'id': 4, 'token': 'QpwL5tke4Pnpja7X4' }
Сада, да бисмо извршили ГЕТ захтев користећи кориснички ИД из одговора, морамо да добијемо вредност ид из горњег одговора. Користићемо доњу скрипту за чување вредности ид из овог ЈСОН-а у променљиву окружења са именом ИД корисник.
var jsonData = pm.response.json(); pm.environment.set('userId',jsonData.id)
Са горњом скриптом, вредност ИД-а ће се сада чувати у променљивој усерИд околине и иста се може користити током извршавања крајње тачке ГЕТ корисничког захтева.
#два) Стога ће ГЕТ кориснички захтев изгледати као што је приказано доле.
хттпс://рекрес.ин/апи/усерс/{(усерИд}}
Једном када се изврши први захтев, он ће из одговора преузети вредност УсерИД-а и ажурирати вредност променљиве окружења, тако да се може користити у осталим захтевима.
Захтев за ланчење поштара
Покушајмо прво да разумемо основни случај примене ланца захтева, а затим ћемо се даље позабавити начином на који можемо постићи повезивање захтева помоћу поштара.
Размотрите сценарио протока пријаве веб локације е-трговине и потврдите пријављеног корисника. Сада да би се корисник могао пријавити, он или она мора прво бити регистрован на веб локацији, а тек онда ће моћи да се пријави. То је редослед којим стварна веб локација мобилне апликације извршава АПИ позиве.
Гледајте из перспективе интеграционог теста. За АПИ тест прво морамо:
- Позовите крајњу тачку за регистрацију АПИ-ја да би се корисник успешно регистровао.
- Затим позовите крајњу тачку за пријављивање и потврдите детаље пријављеног корисника.
Код Поштара, управљање редоследом извршења захтева није директно. Подразумевани налог за извршавање је од врха до дна, тј. Редослед којим се захтеви декларишу или креирају у поштарској колекцији.
Ланац захтева или редослед извршења захтева се мења помоћу следеће скрипте:
postman.setNextRequest({{RequestName}});
Овде је важно напоменути да ову скрипту за верификовање захтева треба додати у скрипту за претходни захтев или скрипту за накнадни захтев (или картицу тестова у програму Постман буилдер захтева) која покреће ток рада када се захтев у извршењу заврши.
Овде је {{РекуестНаме}} стварно име захтева које је конфигурисано или постављено у поштарској колекцији.
Конфигуришимо поштарску колекцију са 4 различита захтева да илуструју концепт ланца захтева. Направите нову колекцију са 4 захтева (користићемо исти АПИ хттпс://рекрес.ин да то илуструјем).
4 захтева у збирци биће као у наставку:
# 1) ПОСТ захтев за регистрацију корисника ( хттпс://рекрес.ин/апи/регистер ) са узорком ЈСОН тела са пољима која садрже е-пошту и лозинку као што је доле наведено.
{ 'email': 'eve.holt@reqres.in', 'password': 'pistol' }
#два) ПОСТ захтев са крајњом тачком за пријаву ( хттпс://рекрес.ин/апи/логин ) са истим телом захтева као горе.
# 3) ГЕТ захтев са усерИД 4.
Ток рада који ћемо покушати да постигнемо је:
Регистрација (ПОСТ) -> Подаци о кориснику (ГЕТ) -> Пријава (ПОСТ)
Без обзира на то како су ови захтеви конфигурисани, креираћемо ток посла како би се извршавали овим редоследом.
Имајте на уму да су захтеви именовани као Регистрирај корисника, Добиј корисника и Корисник за пријаву. Важно је да та имена захтева буду тачно и тачно наведена у скрипти, иначе ће се ток посла заглавити.
Погледајмо како сада изгледају скрипте.
# 1) ПОСТ захтев за регистрацију.
postman.setNextRequest('Login User');
#два) ПОСТ захтев за пријављивање.
postman.setNextRequest('Get User');
# 3) ГЕТ захтев за добијање корисничких детаља. Овде је важно да не желимо да се ишта догоди након овог захтева. Ако овде не додамо ниједну скрипту тока посла, колекција поштара је дизајнирана да настави следећи захтев логичким или подразумеваним редоследом.
Према томе, претпоставимо да је првобитни редослед захтева у збирци Региструјте се, преузмите корисника и Пријавите се и наш ток посла је на Гет Усер пошто контрола не зна који ће захтев следећи ићи, прећи ће на следећи логички захтев који је Пријавите се и на крају ће резултирати бесконачном петљом.
Да бисте спречили такву ситуацију, корисно је прекинути ток рада користећи,
postman.setNextRequest(null)
Кад год се током извршавања колекције наиђе на горњу скрипту, извршење тока посла ће се зауставити и покретач колекције ће се завршити.
У случајевима када постоје кружне референце следећег захтева, покретач колекције заглавит ће се у бесконачној петљи, што ће проузроковати цурење меморије пре или касније.
Имајте на уму да ћете за извршење тока посла требати да извршите први или почетни захтев ручно, објавите то, следит ће ток рада како је дефинисано у скриптама за пост-захтјев.
Другим речима, први захтев који треба да се покрене као део тока посла требало би да буде и први захтев у колекцији или директоријуму колекције, тако да извршење тока рада започиње првим захтевом који је уједно и први захтев тока посла .
Напредно повезивање токова посла са поштаром
Горњи пример о којем смо разговарали је више линеарни ток рада где смо управо конфигурисали ток рада између скупа захтева у истој колекцији. Иста техника се такође може користити за понављање захтева више пута на основу неких вредности одговора или променљивих околине.
Размислите о интеграцијском тесту за апликацију колица за куповину, где треба да тестирате сценарио где корисник тражи производ и додаје га у корпу и мора да изврши исту операцију 5 пута, тј. Док колица не укупно имају 5 предмета, а затим коначно наплата.
Дакле, ако бисте написали линеарни ток за ову врсту теста, поновили бисте појединачне захтеве у колекцији и у основи би колекција имала 5 захтева за претрагу предмета, и 5 захтева за додавање производа у корпу и 1 захтев за плаћање.
Помоћу ове функционалности тока посла можемо да избегнемо понављање истих захтева у колекцији и да користимо токове рада за петљу између захтева.
Погледајмо секвенцу тока за такав сценарио (тада се ово може користити / створити помоћу Постман тока посла заједно са комбинацијом променљивих околине).
Постоји и занимљив пример коришћења Постман тока посла за креирање листе за репродукцију Спотифи. Односити се овде за више информација.
Важни савети
Доље су дати неки важни савети које треба запамтити током рада на изградњи радних токова.
- Током извођења колекције, ако за неколико захтева није постављен постмент.сетНектРекуест, извршење се наставља подразумеваним редоследом прикупљања. Стога се обично препоручује да Постман.сетНектРекуест буде у свим захтевима или у ниједном.
- Када се изводе колекције, ако се у колекцији налазе директоријуми, Постман.сетНектРекуест се може користити само за захтеве који припадају истој фасцикли, тј. Избор захтева не може ићи даље од тренутне мапе.
- Постман.сетНектРекуест је последња изјава која се извршава у скрипти за пост-захтев или пре-захтев, без обзира на то где се и којим редоследом помиње.
У случају да је за сетНектРекуест пронађено више вредности, она која је поменута у последњој је ефикасна.
Закључак
У овом упутству смо обрадили неколико напредних тема скриптирања, као што су комбиновање окружења и локалних променљивих за прослеђивање података између различитих захтева у поштару и како можемо контролисати редослед извршавања захтева помоћу Постман Рекуест ланца који омогућава напредне могућности попут петље и гранања.
колико је корисних хостова доступно с обзиром на ип адресу класе са подразумеваном маском подмреже?
Супер је функција опонашати понашање апликације на начин на који би она комуницирала са различитим АПИ-има и корисно је писати токове рада од краја до краја помоћу интеграционих тестова са крајњим тачкама АПИ-ја.
=> Овде погледајте Тхе Перфецт Постман Траининг Гуиде.
Препоручено читање
- Најбољи алати за тестирање софтвера 2021. године (КА Тест Аутоматион Тоолс)
- Преузимање е-књиге за тестирање буквара
- Водич за ПОСТМАН: Испитивање АПИ-ја помоћу ПОСТМАН-а
- Тестирање перформанси веб услуга помоћу ЛоадРуннер ВуГен скриптирања
- Како се користи поштар за тестирање различитих формата АПИ-ја?
- Испитивање оптерећења помоћу ХП ЛоадРуннер водича
- Разлика између тестирања радне површине, клијентског сервера и веб тестирања
- Да ли сте нови или напредни тестер? Пронађи из ове игре карата