Lekcja 7 / workflow
Chaining i runner: requesty zaczynają ze sobą współpracować
Ręczne kopiowanie ID z odpowiedzi do kolejnego requestu szybko męczy i rodzi błędy. Chaining oznacza: pierwszy request wyciąga wartość, zapisuje ją w zmiennej, a drugi request jej używa.
Sytuacja: utwórz zasób i sprawdź go dalej
W prawdziwym flow QA często najpierw tworzysz koszyk, zgłoszenie albo użytkownika, a potem robisz kolejny krok na ID zwróconym przez API. Jeśli robisz to ręcznie, test przestaje być powtarzalny.
| Krok | Request | Co zapisujesz |
|---|---|---|
| 1 | POST /posts | createdPostId z odpowiedzi |
| 2 | GET /posts/{{createdPostId}} | sprawdzenie, czy ID przechodzi dalej |
| 3 | Runner | uruchomienie flow w kolejności |
Zapis wartości do zmiennej
Po requestcie POST możesz w Tests odczytać odpowiedź i zapisać id do zmiennej kolekcji.
Dzięki temu następny request nie potrzebuje ręcznego kopiowania.
pm.test("created post has id", function () {
const body = pm.response.json();
pm.expect(body).to.have.property("id");
pm.collectionVariables.set("createdPostId", body.id);
});
Użycie zmiennej w następnym requestcie
GET {{baseUrl}}/posts/{{createdPostId}}
W mock API nie każdy zapis zachowuje się jak prawdziwa baza danych, więc traktuj to jako naukę mechanizmu. W realnym API ten wzorzec jest bardzo ważny: login daje token, create cart daje cart ID, create order daje order ID.
Chaining sprawdza przepływ, a nie pojedynczy endpoint w izolacji. To bliższe prawdziwej pracy użytkownika.
Ćwiczenie
W pierwszym requestcie zapisz id odpowiedzi do createdPostId.
W drugim requestcie użyj tej zmiennej w URL-u. Potem uruchom oba requesty w Collection Runnerze.
Mini-zadanie
Przestaw kolejność requestów w runnerze i zobacz, co dzieje się, gdy drugi request startuje przed zapisaniem zmiennej.
Większa praktyka
Opisz flow trzema zdaniami: „tworzę zasób”, „zapisuję ID”, „używam ID w kolejnym kroku”. Jeśli nie umiesz tego wyjaśnić prosto, flow jest jeszcze za mało czytelny.
Quiz
Co oznacza chaining?
Przekazywanie danych z jednego requestu do kolejnego, najczęściej przez zmienne.
Po co używać runnera?
Żeby uruchomić kilka requestów w określonej kolejności i zobaczyć wynik całego flow.
Co może pójść źle, jeśli requesty są w złej kolejności?
Następny request może nie mieć zmiennej, którą powinien dostać z poprzedniego kroku.
Co dalej?
Znasz już requesty, zmienne, autoryzację, testy i chaining. W finale złożysz z tego mały smoke suite, czyli pakiet szybkich testów najważniejszego procesu API.