advanced scripting complex testing workflows postman
Научете за разширените скриптове на пощальон за сложни тестови работни процеси:
В този урок ще видим някои основни примери за използване на Advanced Scripting with Postman, които биха ни позволили да стартираме сложни тестови работни процеси.
Ще обсъдим примери като Предаване на данни от една заявка в друга, Верига на заявки, т.е.контрол на реда за изпълнение на заявките в колекцията Postman и т.н.
конвертирате YouTube видео в mp4 безплатно
=> Прочетете Лесната поредица за обучение на пощальон.
Какво ще научите:
- Предаване на данни между заявки в пощальон
- Заявка за веригиране в пощальон
- Разширено свързване на работния процес с пощальон
- Важни съвети
- Заключение
- Препоръчително четене
Предаване на данни между заявки в пощальон
Предаването на данни между заявките е продължение на използването на различни видове променливи на Postman. Не е много необичайно, когато заявка за API зависи от данни от отговора на предишната заявка.
За да изградим такъв вид възможности, използвайки Postman, можем просто да използваме Postman променливи, за да зададем стойността в зависимост от отговора, получен от предишната или предишната заявка.
Ето видео урок:
Нека да разгледаме пример, за да илюстрираме това.
Ще използваме същия API https://reqres.in с неговите 2 крайни точки, т.е. регистриране на потребител и получаване на подробности за потребителя.
Ще използваме стойността на потребителския идентификатор, върнат от регистриращата се крайна точка, и ще я използваме, за да получим метода с подробности за потребителя. Това ще бъде постигнато чрез съхраняване на стойността userId в променлива на околната среда и използване на тази променлива на околната среда в следващата заявка.
Моля, обърнете внимание, че всички такива скриптове ще бъдат част от раздела „Тестове“ на конзолата за изграждане на заявки за пощальон.
Нека да видим как ще изглежда скриптът:
# 1) За регистрацията на потребителска крайна точка отговорът на този API ще изглежда както е показано по-долу.
{ 'id': 4, 'token': 'QpwL5tke4Pnpja7X4' }
Сега, за да изпълним заявката GET, използвайки идентификатора на потребителя от отговора, трябва да получим стойността на идентификатора от отговора по-горе. Ще използваме скрипта по-долу, за да съхраним стойността на идентификатора от този JSON в променлива на средата с име userId.
var jsonData = pm.response.json(); pm.environment.set('userId',jsonData.id)
С горния скрипт стойността на идентификатора ще се съхранява в променливата на средата userId и същата може да се използва, докато се изпълнява крайната точка на потребителската заявка GET.
# две) По този начин потребителската заявка на GET ще изглежда както е показано по-долу.
https://reqres.in/api/users/{(userId}}
След като първата заявка бъде изпълнена, тя ще извлече стойността на UserID от отговора и ще актуализира стойността на променливата на средата, така че да може да се използва в останалите заявки.
Заявка за веригиране в пощальон
Нека първо се опитаме да разберем основния случай на използване на верига на заявки и след това ще се задълбочим по-нататък как можем да постигнем верига на заявки, използвайки Postman.
Помислете за сценарий на потока за вход на сайт за електронна търговия и потвърдете влезлия потребител. Сега, за да може потребителят да влезе, той или тя трябва първо да се регистрира в сайта и едва тогава той ще може да влезе. Това е редът, в който действителният сайт на мобилното приложение изпълнява API извикванията.
Погледнете го от гледна точка на теста за интеграция. За API тест първо трябва да:
- Извикайте регистрационната крайна точка на API, за да може потребителят да се регистрира успешно.
- След това се обадете на крайната точка за вход и потвърдете подробностите за влезлия потребител.
При Пощальон контролът върху реда на изпълнение на заявките не е директен. Поръчката за изпълнение по подразбиране е отгоре надолу, т.е.поредката, в която заявките се декларират или създават в колекцията Postman.
Веригата на заявките или редът на изпълнение на заявката се променя, като се използва следният скрипт:
postman.setNextRequest({{RequestName}});
Тук е важно да се отбележи, че този скрипт за верижно запитване трябва да бъде добавен към скрипта за предварителна заявка или скрипта след заявка (или раздела за тестове в конструктора на заявки за пощальон), който задейства работния поток, след като заявката в изпълнение е изпълнена.
Тук {{RequestName}} е действителното име на заявката, което е конфигурирано или зададено в колекцията Postman.
Нека да конфигурираме колекция на пощальон с 4 различни заявки, за да илюстрираме концепцията за верига на Request. Създайте нова колекция с 4 заявки (Ще използваме същия API https://reqres.in за да илюстрира това).
4-те заявки в колекцията ще бъдат както по-долу:
# 1) POST искане за регистрация на потребителя ( https://reqres.in/api/register ) с примерно JSON тяло с полета с имейл и парола, както е показано по-долу.
{ 'email': 'eve.holt@reqres.in', 'password': 'pistol' }
# две) POST заявка с крайна точка за вход ( https://reqres.in/api/login ) със същия орган на заявката, както по-горе.
# 3) ВЗЕМЕТЕ заявка с userID 4.
Работният процес, който ще се опитаме да постигнем, е:
Регистрация (POST) -> Данни за потребителя (GET) -> Вход (POST)
Без значение как са конфигурирани тези заявки, ние ще създадем работен поток, за да бъдат изпълнени в този ред.
Моля, обърнете внимание, че заявките са посочени съответно като Потребител за регистрация, Получаване на потребител и Потребител за влизане. Важно е тези имена на заявки да бъдат точно и правилно посочени в скрипта, в противен случай работният процес ще заседне.
Нека да видим как изглеждат скриптовете сега.
# 1) POST заявка за регистрация.
postman.setNextRequest('Login User');
# две) POST заявка за влизане.
postman.setNextRequest('Get User');
# 3) ВЗЕМЕТЕ заявка, за да получите подробности за потребителя. Тук е важно да не искаме нищо да се случи след тази молба. Ако не добавим тук скрипт за работен поток, колекцията Postman е създадена да възобнови следващата заявка в логичен или по подразбиране ред.
По този начин, да предположим, че първоначалният ред на заявките в колекцията е Регистрирайте се, Вземете потребител и Влизам и работният ни процес е в Вземете потребител тъй като контролата не знае коя заявка да отиде следваща, тя ще премине към следващата логическа заявка, която е Влизам и в крайна сметка ще доведе до безкраен цикъл.
За да предотвратите подобна ситуация, е полезно да прекратите работния процес, като използвате
postman.setNextRequest(null)
Винаги, когато по време на изпълнението на колекция се срещне горният скрипт, изпълнението на работния процес ще спре и бегачът на колекцията ще се прекрати.
В случаите, когато има циркулярни препратки към следващата заявка, бележникът за събиране ще се забие в безкраен цикъл, като по този начин рано или късно ще доведе до изтичане на памет.
Моля, обърнете внимание, че за да изпълните работния процес, ще трябва да изпълните първата или стартиращата заявка ръчно, публикувайте това, ще последва работния процес, както е дефиниран в скриптовете за пост-заявка.
С други думи, първата заявка, която трябва да се изпълни като част от работния процес, трябва да бъде и първата заявка в колекцията или папката за събиране, така че изпълнението на работния процес да започне с първата заявка, която е и първата заявка на работния процес .
Разширено свързване на работния процес с пощальон
Горният пример, който обсъдихме, е по-скоро линеен работен поток, където току-що конфигурирахме работен поток между набор от заявки в същата колекция. Същата техника може да се използва и за повторение на заявка няколко пъти въз основа на някои стойности на отговора или променливи на средата.
най-добрите компании за проучване на пазара, за които да работите
Помислете за интеграционен тест за приложение за количка за пазаруване, където трябва да тествате за сценарий, при който потребителят търси продукт и го добавя в кошницата и трябва да извърши същата операция 5 пъти, т.е. докато количката има общо 5 артикула и след това накрая плащане.
Така че, ако трябваше да напишете линеен поток за този вид тест, щяхте да повторите отделни заявки в колекцията и по същество колекцията ще има 5 заявки за търсене на артикул и 5 заявки за добавяне на продукти в количката и 1 заявка за плащане.
С тази функционалност на работния поток можем да избегнем повтарянето на едни и същи заявки в колекцията и да използваме работните потоци, за да завъртаме между заявките.
Нека да видим последователност на потока за такъв сценарий (тогава това може да се използва / създаде с помощта на работния процес на Postman заедно с комбинация от променливи на околната среда).
Има и интересен пример за използване на работния процес на Postman за създаване на плейлист Spotify. Се отнасят тук за повече информация.
Важни съвети
По-долу са дадени някои важни съвети, които трябва да запомните, докато работите върху изграждането на работни потоци.
- Докато се изпълнява колекция, ако малко заявки нямат зададен postment.setNextRequest, изпълнението продължава в реда на събиране по подразбиране. Поради това обикновено се препоръчва да имате Postman.setNextRequest или във всички заявки, или в нито една от тях.
- Когато се изпълняват с колекции, ако в една колекция има папки, тогава Postman.setNextRequest може да се използва само за заявки, принадлежащи към същата папка, т.е.изборът на заявка не може да надхвърля текущата папка.
- Postman.setNextRequest е последното изявление, което се изпълнява в скрипта за пост-заявка или предварителна заявка, независимо къде и какъв ред е споменат.
В случай на множество стойности, намерени за setNextRequest, тази, която е спомената в последната, е ефективна.
Заключение
В този урок разгледахме няколко разширени теми за скриптове, като комбиниране на среда и локални променливи за предаване на данни между различни заявки в Postman и как можем да контролираме реда за изпълнение на заявките, като използваме верига Postman Request, която позволява разширени възможности като цикъл и разклоняване.
Страхотна функция е да имитира поведението на дадено приложение по начина, по който то би взаимодействало с различни приложни програмни интерфейси (API) и е полезно да пишете от край до край работни потоци, използвайки интеграционни тестове с крайни точки на API.
=> Вижте тук Ръководството за обучение на идеалния пощальон.
Препоръчително четене
- Най-добри инструменти за тестване на софтуер 2021 г. (Инструменти за автоматизация на QA теста)
- Изтегляне на eBook за тестване на Primer
- Урок за POSTMAN: Тестване на API с помощта на POSTMAN
- Тестване на производителността на уеб услуги с помощта на LoadRunner VuGen Scripting
- Как да използвам пощальон за тестване на различни формати на API?
- Тестване на натоварване с уроци за HP LoadRunner
- Разлика между тестване на настолни компютри, клиентски сървър и уеб тестване
- Вие сте нов или напреднал тестер? Намерете от тази игра на карти