Junior
Jak sprawdzisz, czy zwróciłeś właściwe pola?
sobes.tech AI
Odpowiedź od AI
Sprawdzenie, czy zwracane są dokładnie potrzebne pola, można wykonać na kilka sposobów, w zależności od typu odpowiedzi (JSON, XML itp.), używanego narzędzia i poziomu testowania (API, E2E):
-
Walidacja schematu odpowiedzi (Schema Validation):
- Najbardziej niezawodna metoda.
- Tworzy się schemat (JSON Schema, XML Schema), który opisuje strukturę i oczekiwane typy danych.
- Odpowiedź jest walidowana względem tego schematu.
- Gwarantuje obecność/brak pól, ich typy i opcjonalnie wyrażenia regularne dla wartości.
// Przykład schematu JSON dla odpowiedzi z użytkownikiem { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "email": { "type": "string", "format": "email" } }, "required": ["id", "name", "email"] } -
Bezpośrednia weryfikacja obecności/braku pól i wartości (Field Presence and Value Assertion):
- Parsowanie odpowiedzi.
- Sprawdzenie, czy każde oczekiwane pole jest obecne.
- Sprawdzenie, czy niepożądane pola nie są obecne.
- Sprawdzenie typów danych pól.
- Sprawdzenie wartości pól (w odniesieniu do konkretnej wartości, wyrażenia regularnego, zakresu itp.).
# Przykład sprawdzania odpowiedzi JSON w Python (z użyciem requests i pytest) import requests import pytest def test_user_response_fields(): response = requests.get("http://api.example.com/users/1") assert response.status_code == 200 data = response.json() # Sprawdzenie obecności pól assert "id" in data assert "name" in data assert "email" in data # Sprawdzenie, czy niepożądane pola nie są obecne (np. 'password') assert "password" not in data # Sprawdzenie typów pól assert isinstance(data["id"], int) assert isinstance(data["name"], str) assert isinstance(data["email"], str) # Sprawdzenie wartości (przykład) assert data["id"] > 0 assert "@" in data["email"] # Podstawowa weryfikacja formatu email -
Porównanie z referencją (Golden Master / Snapshot Testing):
- Zapisywana jest poprawna odpowiedź (referencja).
- Aktualna odpowiedź jest porównywana z referencją.
- Przydatne do sprawdzania stabilności struktury, ale mniej elastyczne przy oczekiwanych zmianach danych.
-
Użycie specjalistycznych bibliotek/frameworków:
- RestAssured (Java)
- Postman (Newman): pozwala na pisanie testów w JavaScript, w tym sprawdzania schematów i pól.
- Pytest/unittest z bibliotekami do obsługi JSON/XML.
Wybór metody zależy od złożoności struktury odpowiedzi, wymagań co do dokładności walidacji i używanego stosu technologicznego. Walidacja schematu jest złotym standardem dla testowania API, ponieważ obejmuje wszystkie aspekty struktury i typów danych.