Sobes.tech
Junior

Hogyan ellenőrzöd, hogy a megfelelő mezőket adtad vissza?

sobes.tech MI

Válasz az MI-től

Ellenőrizni, hogy pontosan a szükséges mezők vannak-e visszaadva, többféle módon lehet, a válasz típusától (JSON, XML stb.), az eszköztől és a tesztelés szintjétől (API, E2E) függően:

  1. Válasz séma ellenőrzése (Schema Validation):

    • A legmegbízhatóbb módszer.
    • Létrehoz egy séma (JSON Schema, XML Schema), amely leírja a várt válasz szerkezetét és adat típusait.
    • A válasz megfelelőségét ellenőrzi a séma szerint.
    • Biztosítja a mezők meglétét/háttérbe szorulását, azok típusát, és opcionálisan reguláris kifejezéseket az értékekhez.
    // Példa JSON séma a felhasználó válaszára
    {
      "type": "object",
      "properties": {
        "id": { "type": "integer" },
        "name": { "type": "string" },
        "email": { "type": "string", "format": "email" }
      },
      "required": ["id", "name", "email"]
    }
    
  2. Közvetlen ellenőrzés a mezők meglétére/háttérbe szorulására és értékeire (Field Presence and Value Assertion):

    • A válasz elemzése.
    • Ellenőrzi, hogy minden elvárt mező jelen van-e.
    • Ellenőrzi, hogy a nem kívánt mezők hiányoznak-e.
    • Ellenőrzi a mezők típusát.
    • Ellenőrzi a mezők értékeit (egy adott értékhez, reguláris kifejezéshez, tartományhoz igazítva).
    # Példa JSON válasz ellenőrzésére Pythonban (requests és pytest használatával)
    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()
    
        # Mezők meglétének ellenőrzése
        assert "id" in data
        assert "name" in data
        assert "email" in data
    
        # Nem kívánt mezők hiányának ellenőrzése (pl. 'password')
        assert "password" not in data
    
        # Mezők típusának ellenőrzése
        assert isinstance(data["id"], int)
        assert isinstance(data["name"], str)
        assert isinstance(data["email"], str)
    
        # Értékek ellenőrzése (példa)
        assert data["id"] > 0
        assert "@" in data["email"] # Egyszerű email formátum ellenőrzés
    
  3. Arany standardhoz való összehasonlítás (Golden Master / Snapshot Testing):

    • Egy előre helyesnek tartott választ (arany standard) tárolnak.
    • Az aktuális választ összehasonlítják az arany standarddal.
    • Hasznos a szerkezet stabilitásának ellenőrzéséhez, de kevésbé rugalmas a várt változások esetén.
  4. Speciális könyvtárak/keretrendszerek használata:

    • RestAssured (Java)
    • Postman (Newman): lehetővé teszi JavaScriptben írt tesztek írását, beleértve a séma és mező ellenőrzéseket.
    • Pytest/unittest JSON/XML könyvtárakkal.

A módszer kiválasztása a válasz szerkezetének összetettségétől, a pontossági követelményektől és a használt technológiai stacktől függ. A séma validáció az API tesztelés arany standardja, mivel lefedi a szerkezet és az adatok típusainak minden aspektusát.