Przejdź do treści
Wróć do kursuAPI i QA / Lekcja 6 z 8

Lekcja 6 / pierwsze asercje

Testy w Postmanie: status, JSON i asercje

Patrzenie na odpowiedź jest dobre na start. Ale jeśli masz sprawdzić ten sam endpoint wiele razy, potrzebujesz testów. Test w Postmanie to krótki warunek: „oczekuję, że odpowiedź spełnia tę regułę”.

Zaczynamy od prostego oczekiwania

Masz request GET /users/1. Nie chcesz tylko zobaczyć JSON-a. Chcesz potwierdzić, że status to 200, a w odpowiedzi jest e-mail.

Co sprawdzaszDlaczegoPrzykład
StatusCzy API technicznie obsłużyło request200
Pole JSONCzy odpowiedź ma dane potrzebne frontendowiemail
Typ danychCzy pole ma oczekiwany formatemail jako tekst

Test statusu

W zakładce Tests wpisujesz JavaScript. Postman udostępnia obiekt pm, którym czytasz odpowiedź.

Postman: zakładka Scripts w części Post-response z dwoma testami pm.test
Testy to kod uruchamiany po otrzymaniu odpowiedzi.
  1. Zakładka Scripts w requeście.
  2. Sekcja Post-response — kod po odpowiedzi, nie przed.
  3. Edytor — tu wpisujesz asercje pm.test.
pm.test("status is 200", function () {
  pm.response.to.have.status(200);
});

To nie jest jeszcze pełna automatyzacja, ale już eliminuje zgadywanie. Test mówi jasno: jeśli status nie jest 200, scenariusz jest czerwony.

Test pola w JSON-ie

pm.test("response has user email", function () {
  const body = pm.response.json();

  pm.expect(body).to.have.property("email");
  pm.expect(body.email).to.be.a("string");
});

Pierwsza linia w środku testu zamienia odpowiedź na obiekt JavaScript. Potem sprawdzasz, czy pole istnieje i czy jest tekstem. To ważne, bo frontend może polegać na tym polu przy logowaniu, profilu albo powiadomieniach.

Ćwiczenie

Dla requestu GET {{baseUrl}}/users/1 dodaj dwa testy: status 200 oraz obecność pola username. Uruchom request i sprawdź zakładkę Test Results.

Mini-zadanie

Zmień oczekiwany status na 201 i zobacz, jak wygląda celowo zepsuty test.

Większa praktyka

Dopisz test, który sprawdza, że body.id równa się 1. Zapisz, dlaczego taki test jest bardziej konkretny niż samo sprawdzenie statusu.

Quiz

Co robi pm.response.to.have.status(200)?

Sprawdza, czy odpowiedź ma dokładnie status 200.

Po co używać pm.response.json()?

Żeby odczytać JSON jako obiekt i sprawdzać konkretne pola.

Czy test statusu wystarczy?

Nie zawsze. Status mówi o technicznej odpowiedzi, ale często trzeba sprawdzić treść i reguły biznesowe.

Co dalej?

Masz już testy pojedynczego requestu. Teraz połączymy requesty: wynik jednego zapiszesz do zmiennej i wykorzystasz w kolejnym kroku.

Ty wybierasz, co zapamiętuję.

Niezbędne cookies obsługują konto i zapis prób. Jeśli chcesz, możesz włączyć analitykę publicznych stron i pamięć zaproszenia do newslettera. Sam newsletter wymaga osobnego zapisu. Szczegóły w polityce prywatności.

List z warsztatu

Podeślę Ci
coś ciekawego.

Co jakiś czas podeślę Ci nowe materiały o IT i dam znać o kursach. Jeśli masz ochotę, zostaw swój e-mail.

Zapis aktywuje się dopiero po potwierdzeniu adresu. Bezpłatnie, bez obowiązku zakupu. Konto kursanta ma osobne zgody.