Junior
Hogyan ellenőrzöd, hogy a megfelelő mezőket adtad vissza?
sobes.tech MI
Válasz az MI-től
Ellenőrizni, hogy pontosan a szükséges mezők vannak-e visszaadva, többféle módon lehet, a válasz típusától (JSON, XML stb.), az eszköztől és a tesztelés szintjétől (API, E2E) függően:
-
Válasz séma ellenőrzése (Schema Validation):
- A legmegbízhatóbb módszer.
- Létrehoz egy séma (JSON Schema, XML Schema), amely leírja a várt válasz szerkezetét és adat típusait.
- A válasz megfelelőségét ellenőrzi a séma szerint.
- Biztosítja a mezők meglétét/háttérbe szorulását, azok típusát, és opcionálisan reguláris kifejezéseket az értékekhez.
// Példa JSON séma a felhasználó válaszára { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "email": { "type": "string", "format": "email" } }, "required": ["id", "name", "email"] } -
Közvetlen ellenőrzés a mezők meglétére/háttérbe szorulására és értékeire (Field Presence and Value Assertion):
- A válasz elemzése.
- Ellenőrzi, hogy minden elvárt mező jelen van-e.
- Ellenőrzi, hogy a nem kívánt mezők hiányoznak-e.
- Ellenőrzi a mezők típusát.
- Ellenőrzi a mezők értékeit (egy adott értékhez, reguláris kifejezéshez, tartományhoz igazítva).
# Példa JSON válasz ellenőrzésére Pythonban (requests és pytest használatával) 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() # Mezők meglétének ellenőrzése assert "id" in data assert "name" in data assert "email" in data # Nem kívánt mezők hiányának ellenőrzése (pl. 'password') assert "password" not in data # Mezők típusának ellenőrzése assert isinstance(data["id"], int) assert isinstance(data["name"], str) assert isinstance(data["email"], str) # Értékek ellenőrzése (példa) assert data["id"] > 0 assert "@" in data["email"] # Egyszerű email formátum ellenőrzés -
Arany standardhoz való összehasonlítás (Golden Master / Snapshot Testing):
- Egy előre helyesnek tartott választ (arany standard) tárolnak.
- Az aktuális választ összehasonlítják az arany standarddal.
- Hasznos a szerkezet stabilitásának ellenőrzéséhez, de kevésbé rugalmas a várt változások esetén.
-
Speciális könyvtárak/keretrendszerek használata:
- RestAssured (Java)
- Postman (Newman): lehetővé teszi JavaScriptben írt tesztek írását, beleértve a séma és mező ellenőrzéseket.
- Pytest/unittest JSON/XML könyvtárakkal.
A módszer kiválasztása a válasz szerkezetének összetettségétől, a pontossági követelményektől és a használt technológiai stacktől függ. A séma validáció az API tesztelés arany standardja, mivel lefedi a szerkezet és az adatok típusainak minden aspektusát.