Junior
Ako skontrolujete, že ste vrátili správne polia?
sobes.tech AI
Odpoveď od AI
Overte, či sú správne vrátené požadované polia, je možné niekoľkými spôsobmi v závislosti od typu odpovede (JSON, XML atď.), používaného nástroja a úrovne testovania (API, E2E):
-
Validácia schémy odpovede (Schema Validation):
- Najspoľahlivejší spôsob.
- Vytvorí sa schéma (JSON Schema, XML Schema), ktorá opisuje štruktúru a dátové typy očakávanej odpovede.
- Odpoveď sa validuje podľa tejto schémy.
- Zaručuje prítomnosť/absenciu polí, ich typy a voliteľne regulárne výrazy pre hodnoty.
// Príklad JSON schémy pre odpoveď s používateľom { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "email": { "type": "string", "format": "email" } }, "required": ["id", "name", "email"] } -
Priama kontrola prítomnosti/absencie polí a hodnôt (Field Presence and Value Assertion):
- Parsovanie odpovede.
- Kontrola, že každé očakávané pole je prítomné.
- Kontrola, že neželané polia chýbajú.
- Kontrola typov dát polí.
- Kontrola hodnôt polí (zhoda s konkrétnou hodnotou, regulárnym výrazom, rozsahom atď.).
# Príklad kontroly JSON odpovede v Pythone (s použitím requests a 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() # Kontrola prítomnosti polí assert "id" in data assert "name" in data assert "email" in data # Kontrola, že neželané polia (napr. 'password') neexistujú assert "password" not in data # Kontrola typov polí assert isinstance(data["id"], int) assert isinstance(data["name"], str) assert isinstance(data["email"], str) # Kontrola hodnôt (príklad) assert data["id"] > 0 assert "@" in data["email"] # Jednoduchá kontrola formátu emailu -
Porovnanie s referenčným vzorom (Golden Master / Snapshot Testing):
- Uloží sa vopred správna odpoveď (referenčný vzor).
- Aktuálna odpoveď sa porovná s referenčným.
- Užitečné na kontrolu stability štruktúry, ale menej flexibilné pri očakávaných zmenách v dátach.
-
Použitie špecializovaných knižníc/ramečkov:
- RestAssured (Java)
- Postman (Newman): umožňuje písanie testov v JavaScripte, vrátane kontrol štruktúr a polí.
- Pytest/unittest s knižnicami na prácu s JSON/XML.
Výber metódy závisí od zložitosti štruktúry odpovede, požiadaviek na presnosť kontroly a používaného technologického stacku. Validácia schémy je zlatým štandardom pre API testovanie, pretože pokrýva všetky aspekty štruktúry a typov dát.