Przejdź do głównej zawartości

Testowanie API REST w 5 minut

Cel: wyjść od specyfikacji OpenAPI i dojść do zautomatyzowanego testu, który sprawdza pełną ścieżkę.

Plik ▸ Importuj (Ctrl+I), a następnie adres URL pliku openapi.json.

Restorm buduje kompletne drzewo: jeden folder na etykietę, jedno żądanie na operację, typowane parametry, dokumentację oraz nagłówki uwierzytelniania wstępnie podłączone wraz ze swoimi zmiennymi.

Drzewo utworzone przez import OpenAPI, gotowe do użycia: jeden folder na etykietę (pet, store, user) i jedno wstępnie wypełnione żądanie na operację, obok podzakładki startowej folderu zmiennych

Jeśli dane API nie ma specyfikacji, wystarczy wkleić polecenie curl — zob. Import poleceń cURL.

Należy otworzyć folder zmiennych utworzony przez import. Bazowy adres URL już tam jest; pozostaje uzupełnić zmienną uwierzytelniania, którą import przygotował.

Przy testowaniu kilku celów warto utworzyć drugie środowisko — selektor w smartbarze przełącza cały folder za jednym razem.

3. Wysłanie pierwszego wywołania (30 sekund)

Section titled “3. Wysłanie pierwszego wywołania (30 sekund)”

Wystarczy otworzyć żądanie i kliknąć Send. Odpowiedź pojawia się od razu: status, czas, nagłówki oraz treść w zwijanej przeglądarce.

Jeśli o czymś zapomniano, informuje o tym rozwiązana wartość wyświetlana pod polem adresu URL.

Prawy przycisk myszy ▸ Dodaj ▸ Scenariusz. Ścieżka „utworzenie, odczyt, usunięcie”:

Żądanie HTTP „POST /clients”
└─response──► Assert (eq, 201)
└─► Ustaw zmienną „clientId” ◄── selektor body.id
Żądanie HTTP „GET /clients/{id}”
└─response──► Assert (eq, 200)
└─► Walidacja schematu (JSON Schema klienta)
Żądanie HTTP „DELETE /clients/{id}”
└─response──► Assert (eq, 204)

Wszystkie trzy żądania używają {{clientId}} w swoim adresie URL: zmienna uruchomienia ustawiona w pierwszym kroku jest odczytywana przez kolejne.

Łączy się je w łańcuch, podłączając port done każdej asercji do portu in następnego żądania — to właśnie gwarantuje kolejność.

Wystarczy kliknąć Uruchom. Dziennik zapełnia się; po każdym kroku warto dodać akcję Log, aby zarejestrować to, co istotne.

Do wyjścia else krytycznych asercji należy podłączyć akcję Throw: to właśnie ona spowoduje niepowodzenie zadania CI.

Terminal window
RESTORM_TOKEN=rstk_… restorm \
--open ./api.restorm \
--run "Parcours client" \
--headless \
--out run.log

Kod wyjścia 0, jeśli wszystko przechodzi, w przeciwnym razie 1. Zob. Uruchamianie headless i CI, gdzie znajdują się przykłady dla GitHub Actions i GitLab CI.