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 sprawdzasz | Dlaczego | Przykład |
|---|---|---|
| Status | Czy API technicznie obsłużyło request | 200 |
| Pole JSON | Czy odpowiedź ma dane potrzebne frontendowi | email |
| Typ danych | Czy pole ma oczekiwany format | email jako tekst |
Test statusu
W zakładce Tests wpisujesz JavaScript. Postman udostępnia obiekt pm, którym czytasz odpowiedź.
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.