advanced scripting complex testing workflows postman
Dowiedz się więcej o zaawansowanym skrypcie Postman dla złożonych przepływów pracy testowania:
W tym samouczku zobaczymy kilka podstawowych przykładów korzystania z zaawansowanego skryptowania w programie Postman, które umożliwiłyby nam uruchamianie złożonych przepływów pracy testowania.
Omówimy przykłady, takie jak przekazywanie danych z jednego żądania do drugiego, łańcuch żądań, czyli kontrolowanie kolejności wykonywania żądań w kolekcji Postman itp.
najlepszy pomysł na Pythona dla systemu Windows 10
=> Przeczytaj serię szkoleń Easy Postman.
Czego się nauczysz:
- Przekazywanie danych między żądaniami w programie Postman
- Poproś o połączenie listonosza
- Zaawansowane łączenie przepływu pracy z listonoszem
- Ważne wskazówki
- Wniosek
- rekomendowane lektury
Przekazywanie danych między żądaniami w programie Postman
Przekazywanie danych między żądaniami to rozszerzenie stosowania różnych typów zmiennych Postman. Często zdarza się, że żądanie API zależy od danych z odpowiedzi na poprzednie żądanie.
Aby zbudować tego rodzaju możliwości za pomocą programu Postman, możemy po prostu użyć zmiennych Postmana, aby ustawić wartość w zależności od odpowiedzi otrzymanej z poprzednich lub poprzednich żądań.
Oto samouczek wideo:
Spójrzmy na przykład, aby to zilustrować.
Będziemy używać tego samego interfejsu API https://reqres.in z jego 2 punktami końcowymi, tj. zarejestruj użytkownika i uzyskaj dane użytkownika.
Użyjemy wartości identyfikatora użytkownika zwróconej z rejestrującego punktu końcowego i użyjemy jej do pobrania metody szczegółów użytkownika. Zostanie to osiągnięte poprzez przechowywanie wartości userId w zmiennej środowiskowej i użycie tej zmiennej środowiskowej w kolejnym żądaniu.
Należy pamiętać, że wszystkie takie skrypty będą częścią zakładki „Testy” konsoli kreatora żądań Postman.
Zobaczmy, jak będzie wyglądał skrypt:
# 1) W przypadku punktu końcowego użytkownika Zarejestruj się odpowiedź tego interfejsu API będzie wyglądać tak, jak pokazano poniżej.
{ 'id': 4, 'token': 'QpwL5tke4Pnpja7X4' }
Teraz, aby wykonać żądanie GET przy użyciu identyfikatora użytkownika z odpowiedzi, musimy pobrać wartość id z powyższej odpowiedzi. Użyjemy poniższego skryptu, aby zapisać wartość id z tego JSON w zmiennej środowiskowej o nazwie identyfikator użytkownika.
var jsonData = pm.response.json(); pm.environment.set('userId',jsonData.id)
W powyższym skrypcie wartość identyfikatora będzie teraz przechowywana w zmiennej środowiskowej userId i to samo można wykorzystać podczas wykonywania punktu końcowego żądania użytkownika GET.
#dwa) Zatem żądanie użytkownika GET będzie wyglądać tak, jak pokazano poniżej.
https://reqres.in/api/users/{(userId}}
Po wykonaniu pierwszego żądania pobierze wartość identyfikatora użytkownika z odpowiedzi i zaktualizuje wartość zmiennej środowiskowej, aby można było jej użyć w innych żądaniach.
Poproś o połączenie listonosza
Najpierw spróbujmy zrozumieć podstawowy przypadek użycia łączenia żądań, a następnie zagłębimy się dalej, w jaki sposób możemy osiągnąć łańcuch żądań za pomocą programu Postman.
Rozważ scenariusz przepływu logowania do witryny eCommerce i zweryfikuj zalogowanego użytkownika. Teraz, aby użytkownik mógł się zalogować, musi najpierw zostać zarejestrowany w serwisie, a dopiero potem będzie mógł się zalogować. Taka jest kolejność, w jakiej rzeczywista witryna aplikacji mobilnej wykonuje wywołania API.
Spójrz na to z perspektywy testu integracji. Aby przeprowadzić test API, musimy najpierw:
- Wywołaj rejestracyjny punkt końcowy interfejsu API, aby użytkownik mógł się pomyślnie zarejestrować.
- Następnie wywołaj punkt końcowy logowania i sprawdź szczegóły zalogowanego użytkownika.
Dzięki Postmanowi kontrolowanie kolejności wykonywania żądań nie jest proste. Domyślna kolejność wykonywania jest od góry do dołu, czyli kolejność, w której żądania są deklarowane lub tworzone w kolekcji Postman.
Łańcuch żądań lub kolejność wykonywania żądań zmienia się przy użyciu następującego skryptu:
postman.setNextRequest({{RequestName}});
W tym miejscu należy zauważyć, że ten skrypt łączenia żądań należy dodać do skryptu przed żądaniem lub po żądaniu (lub do karty testów w narzędziu do tworzenia żądań Postman), który uruchamia przepływ pracy po zakończeniu wykonywania żądania.
Tutaj {{RequestName}} to rzeczywista nazwa żądania, która jest skonfigurowana lub ustawiona w kolekcji Postman.
Skonfigurujmy kolekcję Postman z 4 różnymi żądaniami, aby zilustrować koncepcję łączenia żądań. Utwórz nową kolekcję z 4 żądaniami (będziemy używać tego samego interfejsu API https://reqres.in aby to zilustrować).
4 żądania w kolekcji będą wyglądać następująco:
# 1) POST żądanie rejestracji użytkownika ( https://reqres.in/api/register ) z przykładową treścią JSON z polami zawierającymi adres e-mail i hasło, jak poniżej.
{ 'email': 'eve.holt@reqres.in', 'password': 'pistol' }
#dwa) Żądanie POST z punktem końcowym logowania ( https://reqres.in/api/login ) z taką samą treścią żądania jak powyżej.
# 3) POBIERZ żądanie z ID użytkownika 4.
Przepływ pracy, który postaramy się osiągnąć, to:
Zarejestruj się (POST) -> Dane użytkownika (GET) -> Zaloguj się (POST)
Bez względu na to, jak te żądania są skonfigurowane, utworzymy przepływ pracy, aby były wykonywane w tej kolejności.
Należy pamiętać, że żądania są oznaczone odpowiednio jako Zarejestruj użytkownika, Uzyskaj użytkownika i Zaloguj się. Ważne jest, aby te nazwy żądań były dokładnie i poprawnie określone w skrypcie, w przeciwnym razie przepływ pracy utknie.
Zobaczmy teraz, jak wyglądają skrypty.
# 1) POST żądanie rejestracji.
postman.setNextRequest('Login User');
#dwa) Żądanie POST logowania.
postman.setNextRequest('Get User');
# 3) POBIERZ prośbę o dane użytkownika. Ważne jest, abyśmy nie chcieli, aby po tej prośbie cokolwiek się stało. Jeśli nie dodamy tutaj żadnego skryptu przepływu pracy, kolekcja Postman jest przeznaczona do wznowienia następnego żądania w kolejności logicznej lub domyślnej.
Zatem załóżmy, że oryginalna kolejność żądań w kolekcji to Zarejestruj się, uzyskaj użytkownika i Zaloguj sie a nasz przepływ pracy to Uzyskaj użytkownika ponieważ układ sterowania nie wie, które żądanie przejść dalej, przejdzie do następnego żądania logicznego Zaloguj sie i ostatecznie spowoduje nieskończoną pętlę.
Aby temu zapobiec, warto zakończyć przepływ pracy za pomocą,
postman.setNextRequest(null)
Ilekroć powyższy skrypt zostanie napotkany podczas wykonywania kolekcji, wykonywanie przepływu pracy zostanie zatrzymane, a moduł uruchamiający kolekcję zostanie zakończony.
W przypadkach, gdy istnieją cykliczne odwołania do następnego żądania, moduł uruchamiający kolekcję utknie w nieskończonej pętli, powodując w ten sposób wcześniej czy później wyciek pamięci.
Zwróć uwagę, że aby wykonać przepływ pracy, będziesz musiał wykonać pierwsze lub uruchomione żądanie ręcznie, opublikuj to, będzie postępować zgodnie z przepływem pracy zdefiniowanym w skryptach post-request.
Innymi słowy, pierwsze żądanie, które ma być uruchomione jako część przepływu pracy, powinno być również pierwszym żądaniem w kolekcji lub folderze kolekcji, tak aby wykonanie przepływu pracy rozpoczynało się od pierwszego żądania, które jest również pierwszym żądaniem przepływu pracy .
Zaawansowane łączenie przepływu pracy z listonoszem
Powyższy przykład, który omówiliśmy, jest bardziej liniowym przepływem pracy, w którym właśnie skonfigurowaliśmy przepływ pracy między zestawem żądań w tej samej kolekcji. Tej samej techniki można również użyć do wielokrotnego zapętlania żądania na podstawie niektórych wartości odpowiedzi lub zmiennych środowiskowych.
Rozważ test integracji dla aplikacji koszyka na zakupy, w którym musisz przetestować scenariusz, w którym użytkownik wyszukuje produkt i dodaje go do koszyka i musi wykonać tę samą operację 5 razy, tj. Do momentu, gdy w koszyku będzie łącznie 5 pozycji, a następnie w końcu do kasy.
Tak więc, gdybyś napisał liniowy przepływ dla tego rodzaju testu, powtórzyłbyś poszczególne żądania w kolekcji i zasadniczo kolekcja miałaby 5 żądań wyszukiwania pozycji i 5 żądań dodania produktów do koszyka i 1 żądanie do kasy.
Dzięki tej funkcji przepływu pracy możemy uniknąć powtarzania tych samych żądań w kolekcji i używać przepływów pracy do pętli między żądaniami.
Zobaczmy sekwencję przepływu dla takiego scenariusza (wtedy można ją wykorzystać / utworzyć za pomocą przepływu pracy programu Postman wraz z kombinacją zmiennych środowiskowych).
Istnieje również ciekawy przykład wykorzystania przepływu pracy Postman do tworzenia listy odtwarzania Spotify. Odnosić się tutaj po więcej informacji.
Ważne wskazówki
Poniżej podano kilka ważnych wskazówek, o których należy pamiętać podczas pracy nad tworzeniem przepływów pracy.
- Podczas uruchamiania kolekcji, jeśli kilka żądań nie ma ustawionego postment.setNextRequest, wykonywanie jest kontynuowane w domyślnej kolejności zbierania. W związku z tym ogólnie zaleca się umieszczanie Postman.setNextRequest we wszystkich żądaniach lub w żadnym z nich.
- Podczas uruchamiania z kolekcjami, jeśli w kolekcji znajdują się foldery, Postman.setNextRequest może być używany tylko dla żądań należących do tego samego folderu, tj. Wybór żądania nie może wykraczać poza bieżący folder.
- Postman.setNextRequest to ostatnia instrukcja, która jest wykonywana w skrypcie post-request lub pre-request, niezależnie od tego, gdzie i w jakiej kolejności została wymieniona.
W przypadku znalezienia wielu wartości dla setNextRequest, obowiązuje ta, która została wymieniona w ostatnim.
Wniosek
W tym samouczku omówiliśmy kilka zaawansowanych tematów dotyczących skryptów, takich jak łączenie zmiennych środowiskowych i lokalnych w celu przekazywania danych między różnymi żądaniami w programie Postman oraz w jaki sposób możemy kontrolować kolejność wykonywania żądań za pomocą tworzenia łańcuchów żądań Postman, które zapewniają zaawansowane możliwości, takie jak pętle i rozgałęzianie.
To fajna funkcja naśladująca zachowanie aplikacji w sposób, w jaki będzie ona współdziałać z różnymi interfejsami API, i jest pomocna przy pisaniu przepływów pracy od końca do końca przy użyciu testów integracji z punktami końcowymi API.
narzędzia do testowania automatyzacji aplikacji mobilnych
=> Sprawdź tutaj idealny przewodnik szkoleniowy dla listonosza.
rekomendowane lektury
- Najlepsze narzędzia do testowania oprogramowania 2021 (Narzędzia do automatyzacji testów QA)
- Testing Primer Pobierz eBook
- Samouczek POSTMAN: Testowanie API przy użyciu POSTMAN
- Testowanie wydajności usług sieci Web przy użyciu skryptów LoadRunner VuGen
- Jak używać programu Postman do testowania różnych formatów API?
- Testowanie obciążenia za pomocą samouczków HP LoadRunner
- Różnica między testami na komputerach stacjonarnych, serwerach klienckich i testach internetowych
- Czy jesteś nowym czy zaawansowanym testerem? Znajdź w tej grze w karty