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"] # Պարզ ստուգում էլ.փոստի ձևաչափի -
Համեմատություն ստանդարտի հետ (Golden Master / Snapshot Testing):
- Նախապես պահվում է ճիշտ պատասխան (ստանդարտ):
- Ներկա պատասխանն համեմատվում է ստանդարտի հետ:
- Օգտակար է կառուցվածքի կայունությունը ստուգելու համար, բայց ավելի քիչ ճկուն է սպասվող փոփոխությունների դեպքում:
-
Մասնագիտացված գրադարանների/ֆրեյմվորկների օգտագործում:
- RestAssured (Java)
- Postman (Newman): թույլ է տալիս գրել JavaScript-ով, ներառյալ սխեմաների և դաշտերի ստուգումները:
- Pytest/unittest՝ JSON/XML աշխատելու գրադարաններով:
Ընտրությունը կախված է պատասխանների կառուցվածքի բարդությունից, ճշգրտության պահանջներից և օգտագործվող տեխնոլոգիական ստեկից: Սխեմայի վավերացումը համարվում է API թեստավորման ոսկե ստանդարտ, քանի որ այն ընդգրկում է կառուցվածքի և տվյալների տիպերի բոլոր ասպեկտները։