Junior
Düzgün sahələri qaytardığınızdan necə əmin olacaqsınız?
sobes.tech Süni İntellekt
AI-dan cavab
Tələb olunan sahələrin dəqiq qaytarıldığından əmin olmaq üçün, cavab növündən (JSON, XML və s.), istifadə olunan vasitədən və test səviyyəsindən (API, E2E) asılı olaraq, bir neçə üsul mövcuddur:
-
Cavab sxeminin doğrulanması (Schema Validation):
- Ən etibarlı üsul.
- Gözlənilən cavabın quruluşunu və məlumat tiplərini təsvir edən sxema (JSON Schema, XML Schema) yaradılır.
- Cavab bu sxemə uyğun olaraq yoxlanılır.
- Sahələrin mövcudluğu/mövcud olmaması, tipləri və, istəyə bağlı olaraq, dəyərlər üçün müntəzəm ifadələr təmin edilir.
// İstifadəçi üçün JSON Schema nümunəsi { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "email": { "type": "string", "format": "email" } }, "required": ["id", "name", "email"] } -
Birbaşa sahələrin mövcudluğu/mövcud olmaması və dəyərlərin yoxlanması (Field Presence and Value Assertion):
- Cavabın parsinqi.
- Hər gözlənilən sahənin mövcud olub-olmadığının yoxlanması.
- İstənməyən sahələrin mövcud olmamasının yoxlanması.
- Sahələrin məlumat tiplərinin yoxlanması.
- Sahələrin dəyərlərinin yoxlanması (müəyyən bir dəyərə, müntəzəm ifadəyə, diapazona uyğun olub-olmadığını).
# Python-da JSON cavabını yoxlama nümunəsi (requests və pytest ilə) 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() # Sahələrin mövcudluğunu yoxlama assert "id" in data assert "name" in data assert "email" in data # İstənməyən sahələrin mövcud olmamasını yoxlama (məsələn, 'password') assert "password" not in data # Sahələrin məlumat tiplərini yoxlama assert isinstance(data["id"], int) assert isinstance(data["name"], str) assert isinstance(data["email"], str) # Dəyərləri yoxlama (nümunə) assert data["id"] > 0 assert "@" in data["email"] # Sadə email format yoxlaması -
Qızıl standart ilə müqayisə (Golden Master / Snapshot Testing):
- Doğru cavab (referans) saxlanılır.
- Cari cavab referans ilə müqayisə edilir.
- Strukturanın sabitliyini yoxlamaq üçün faydalıdır, lakin gözlənilən dəyişikliklərə qarşı daha az elastikdir.
-
Xüsusi kitabxanalar/frameworklərdən istifadə:
- RestAssured (Java)
- Postman (Newman): JSON və XML ilə işləmək üçün testlər yazmağa imkan verir, sxema və sahə yoxlamalarını daxil edir.
- Pytest/unittest və JSON/XML ilə işləmək üçün kitabxanalar.
Yöntəm seçimi cavabın strukturunun mürəkkəbliyinə, yoxlamanın dəqiqliyinə və istifadə olunan texnoloji yığmaya bağlıdır. Sxema doğrulaması API testləri üçün qızıl standartdır, çünki struktur və məlumat tiplərinin bütün aspektlərini əhatə edir.