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 z edytorem testów Post-res
Testy wpisujesz w Scripts, w części Post-res. To kod uruchamiany po otrzymaniu odpowiedzi.
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.

Lekcja 6: Testy w Postmanie: status, JSON i asercje | Postman od podstaw dla QA | Mikołaj Mikołajczak