Junior
Как ще проверите дали сте върнали правилните полета?
sobes.tech AI
Отговор от AI
Проверката дали са върнати точно необходимите полета, може да се извърши по няколко начина, в зависимост от типа на отговора (JSON, XML и др.), използвания инструмент и нивото на тестиране (API, E2E):
-
Валидация на схемата на отговора (Schema Validation):
- Най-надеждният начин.
- Създава се схема (JSON Schema, XML Schema), която описва структурата и типовете данни на очаквания отговор.
- Отговорът се валидира спрямо тази схема.
- Гарантира наличието/липсата на полета, техните типове и, по желание, регулярни изрази за стойностите.
// Пример за JSON схема за отговор с потребител { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "email": { "type": "string", "format": "email" } }, "required": ["id", "name", "email"] } -
Директна проверка за наличието/липсата на полета и стойности (Field Presence and Value Assertion):
- Парсване на отговора.
- Проверка дали всяко очаквано поле съществува.
- Проверка дали нежеланите полета липсват.
- Проверка на типовете данни на полетата.
- Проверка на стойностите на полетата (съответствие с конкретна стойност, регулярен израз, диапазон и др.).
# Пример за проверка на JSON отговор в Python (с използване на requests и 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() # Проверка за наличието на полета assert "id" in data assert "name" in data assert "email" in data # Проверка за липсата на нежелани полета (например, 'password') assert "password" not in data # Проверка на типовете на полетата assert isinstance(data["id"], int) assert isinstance(data["name"], str) assert isinstance(data["email"], str) # Проверка на стойностите (пример) assert data["id"] > 0 assert "@" in data["email"] # Простата проверка за формат на email -
Сравнение с еталон (Golden Master / Snapshot Testing):
- Запазва се предварително правилният отговор (еталон).
- Текущият отговор се сравнява с еталона.
- Полезно за проверка на стабилността на структурата, но по-малко гъвкаво при очаквани промени в данните.
-
Използване на специализирани библиотеки/фреймуъркове:
- RestAssured (Java)
- Postman (Newman): позволява писане на тестове на JavaScript, включително проверки на схеми и полета.
- Pytest/unittest с библиотеки за работа с JSON/XML.
Изборът на метод зависи от сложността на структурата на отговора, изискванията за точност на проверката и използвания технологичен стек. Валидацията на схема е златният стандарт за API тестиране, тъй като покрива всички аспекти на структурата и типовете данни.