Junior
Kuidas kontrollite, et olete tagastanud õiged väljad?
sobes.tech AI
Vastus AI-lt
Kontrollida, kas atgriezti ir tieši nepieciešamie lauki, var vairākos veidos atkarībā no atbildes veida (JSON, XML utt.), izmantotā rīka un testēšanas līmeņa (API, E2E):
-
Atbildes shēmas validācija (Schema Validation):
- Visuzticamākais veids.
- Tiek izveidota shēma (JSON Schema, XML Schema), kas apraksta gaidāmās atbildes struktūru un datu tipus.
- Atbilde tiek pārbaudīta pēc šīs shēmas.
- Garantē lauku klātbūtni/nevēlamo lauku neesamību, to tipus un, ja nepieciešams, regulāros izteicienus vērtībām.
// Piemērs JSON shēmai ar lietotāja atbildi { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "email": { "type": "string", "format": "email" } }, "required": ["id", "name", "email"] } -
Tieša lauku klātbūtnes/neklātbūtnes un vērtību pārbaude (Field Presence and Value Assertion):
- Atbildes parsēšana.
- Pārbaude, vai katrs gaidāmais lauks ir.
- Pārbaude, vai nevēlami lauki nav.
- Lauku datu tipu pārbaude.
- Lauku vērtību pārbaude (atbilstība konkrētai vērtībai, regulāriem izteicieniem, diapazonam utt.).
# Piemērs JSON atbildes pārbaudei Pythonā (ar requests un 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() # Lauku klātbūtnes pārbaude assert "id" in data assert "name" in data assert "email" in data # Nevēlami lauki (piem., 'password') neeksistē assert "password" not in data # Lauku tipu pārbaude assert isinstance(data["id"], int) assert isinstance(data["name"], str) assert isinstance(data["email"], str) # Vērtību pārbaude (piemērs) assert data["id"] > 0 assert "@" in data["email"] # Vienkārša e-pasta formāta pārbaude -
Salīdzinājums ar etalonu (Golden Master / Snapshot Testing):
- Iepriekš saglabāts pareizs atbilde (etalons).
- Aktuālā atbilde tiek salīdzināta ar etalonu.
- Noderīga struktūras stabilitātes pārbaudei, bet mazāk elastīga gaidāmo izmaiņu gadījumā.
-
Speciālas bibliotēkas/rāmiņu izmantošana:
- RestAssured (Java)
- Postman (Newman): ļauj rakstīt testus JavaScript, ieskaitot shēmu un lauku pārbaudes.
- Pytest/unittest ar JSON/XML darba bibliotēkām.
Izvēle ir atkarīga no atbildes struktūras sarežģītības, precizitātes prasībām un izmantotās tehnoloģijas. Schemas validācija ir zelta standarts API testēšanā, jo tā aptver visas struktūras un datu tipu aspektus.