Junior
Kako ćete proveriti da ste vratili ta prava polja?
sobes.tech АИ
Одговор од АИ
Proveriti da li su vraćena tačno potrebna polja, može se uraditi na više načina u zavisnosti od tipa odgovora (JSON, XML itd.), korišćenog alata i nivoa testiranja (API, E2E):
-
Validacija šeme odgovora (Schema Validation):
- Najpouzdaniji način.
- Kreira se šema (JSON Schema, XML Schema) koja opisuje strukturu i tipove podataka očekivanog odgovora.
- Odgovor se validira prema toj šemi.
- Garantuje prisustvo/odsustvo polja, njihove tipove i, opcionalno, regularne izraze za vrednosti.
// Primer JSON šeme za odgovor sa korisnikom { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "email": { "type": "string", "format": "email" } }, "required": ["id", "name", "email"] } -
Direktna provera prisustva/odsustva polja i vrednosti (Field Presence and Value Assertion):
- Parsiranje odgovora.
- Provera da li je svako očekivano polje prisutno.
- Provera da li neželjena polja nedostaju.
- Provera tipova podataka polja.
- Provera vrednosti polja (usklađenost sa konkretnom vrednošću, regularnim izrazom, opsegom itd.).
# Primer provere JSON odgovora u Pythonu (sa 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() # Provera prisustva polja assert "id" in data assert "name" in data assert "email" in data # Provera da neželjena polja (npr. 'password') ne postoje assert "password" not in data # Provera tipova polja assert isinstance(data["id"], int) assert isinstance(data["name"], str) assert isinstance(data["email"], str) # Provera vrednosti (primer) assert data["id"] > 0 assert "@" in data["email"] # Prosta provera formata emaila -
Upoređenje sa referentnim primerom (Golden Master / Snapshot Testing):
- Sačuva se unapred tačan odgovor (referentni primer).
- Trenutni odgovor se upoređuje sa referentnim.
- Korisno za proveru stabilnosti strukture, ali manje fleksibilno kod očekivanih promena u podacima.
-
Korišćenje specijalizovanih biblioteka/okvira:
- RestAssured (Java)
- Postman (Newman): omogućava pisanje testova u JavaScript-u, uključujući provere šema i polja.
- Pytest/unittest sa bibliotekama za rad sa JSON/XML.
Izbor metode zavisi od složenosti strukture odgovora, zahteva za preciznošću provere i korišćenog tehnološkog steka. Validacija šeme je zlatni standard za API testiranje, jer pokriva sve aspekte strukture i tipova podataka.