Sobes.tech
Junior

Kako ćete proveriti da ste vratili ta prava polja?

sobes.tech АИ

Одговор од АИ

Proveriti da li su vraćena tačno potrebna polja, može se uraditi na više načina u zavisnosti od tipa odgovora (JSON, XML itd.), korišćenog alata i nivoa testiranja (API, E2E):

  1. Validacija šeme odgovora (Schema Validation):

    • Najpouzdaniji način.
    • Kreira se šema (JSON Schema, XML Schema) koja opisuje strukturu i tipove podataka očekivanog odgovora.
    • Odgovor se validira prema toj šemi.
    • Garantuje prisustvo/odsustvo polja, njihove tipove i, opcionalno, regularne izraze za vrednosti.
    // Primer JSON šeme za odgovor sa korisnikom
    {
      "type": "object",
      "properties": {
        "id": { "type": "integer" },
        "name": { "type": "string" },
        "email": { "type": "string", "format": "email" }
      },
      "required": ["id", "name", "email"]
    }
    
  2. Direktna provera prisustva/odsustva polja i vrednosti (Field Presence and Value Assertion):

    • Parsiranje odgovora.
    • Provera da li je svako očekivano polje prisutno.
    • Provera da li neželjena polja nedostaju.
    • Provera tipova podataka polja.
    • Provera vrednosti polja (usklađenost sa konkretnom vrednošću, regularnim izrazom, opsegom itd.).
    # Primer provere JSON odgovora u Pythonu (sa requests i 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()
    
        # Provera prisustva polja
        assert "id" in data
        assert "name" in data
        assert "email" in data
    
        # Provera da neželjena polja (npr. 'password') ne postoje
        assert "password" not in data
    
        # Provera tipova polja
        assert isinstance(data["id"], int)
        assert isinstance(data["name"], str)
        assert isinstance(data["email"], str)
    
        # Provera vrednosti (primer)
        assert data["id"] > 0
        assert "@" in data["email"] # Prosta provera formata emaila
    
  3. Upoređenje sa referentnim primerom (Golden Master / Snapshot Testing):

    • Sačuva se unapred tačan odgovor (referentni primer).
    • Trenutni odgovor se upoređuje sa referentnim.
    • Korisno za proveru stabilnosti strukture, ali manje fleksibilno kod očekivanih promena u podacima.
  4. Korišćenje specijalizovanih biblioteka/okvira:

    • RestAssured (Java)
    • Postman (Newman): omogućava pisanje testova u JavaScript-u, uključujući provere šema i polja.
    • Pytest/unittest sa bibliotekama za rad sa JSON/XML.

Izbor metode zavisi od složenosti strukture odgovora, zahteva za preciznošću provere i korišćenog tehnološkog steka. Validacija šeme je zlatni standard za API testiranje, jer pokriva sve aspekte strukture i tipova podataka.