Sobes.tech
Junior

Doğru alanları döndürdüğünüzü nasıl kontrol edeceksiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Yanıtın sadece gereken alanları döndürdüğünden emin olmak için, kullanılan araç ve test seviyesine (API, E2E) bağlı olarak birkaç yöntem vardır:

  1. Yanıt şemasını doğrulama (Schema Validation):

    • En güvenilir yöntem.
    • Beklenen yanıtın yapısını ve veri tiplerini tanımlayan bir şema (JSON Schema, XML Schema) oluşturulur.
    • Yanıt bu şemaya göre doğrulanır.
    • Alanların varlığı/yokluğu, türleri ve isteğe bağlı olarak değerler için düzenli ifadeler garantilenir.
    // Bir kullanıcı yanıtı için JSON Schema örneği
    {
      "type": "object",
      "properties": {
        "id": { "type": "integer" },
        "name": { "type": "string" },
        "email": { "type": "string", "format": "email" }
      },
      "required": ["id", "name", "email"]
    }
    
  2. Alanların varlığı/yokluğu ve değerlerin doğrudan doğrulanması (Field Presence and Value Assertion):

    • Yanıtın ayrıştırılması.
    • Her beklenen alanın mevcut olup olmadığının kontrolü.
    • İstenmeyen alanların olmamasının kontrolü.
    • Alanların veri tiplerinin kontrolü.
    • Alan değerlerinin kontrolü (belirli bir değere, düzenli ifadeye, aralığa uygunluk gibi).
    # Python'da JSON yanıtını kontrol etme örneği (requests ve pytest kullanarak)
    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()
    
        # Alanların varlığını kontrol et
        assert "id" in data
        assert "name" in data
        assert "email" in data
    
        # İstenmeyen alanların olmamasını kontrol et (örneğin, 'password')
        assert "password" not in data
    
        # Alanların veri tiplerini kontrol et
        assert isinstance(data["id"], int)
        assert isinstance(data["name"], str)
        assert isinstance(data["email"], str)
    
        # Değerleri kontrol et (örnek)
        assert data["id"] > 0
        assert "@" in data["email"]  # Basit email format kontrolü
    
  3. Altın standart ile karşılaştırma (Golden Master / Snapshot Testing):

    • Doğru yanıt (referans) önceden kaydedilir.
    • Güncel yanıt referans ile karşılaştırılır.
    • Yapısal istikrarı kontrol etmek için kullanışlıdır, ancak verilerde beklenen değişikliklere karşı daha az esnektir.
  4. Özel kütüphaneler/frameworkler kullanımı:

    • RestAssured (Java)
    • Postman (Newman): şema ve alan doğrulamaları dahil olmak üzere JavaScript ile testler yazmaya olanak tanır.
    • Pytest/unittest ve JSON/XML ile çalışma kütüphaneleri.

Yöntem seçimi, yanıt yapısının karmaşıklığına, doğrulama hassasiyetine ve kullanılan teknolojik yığınına bağlıdır. Şema doğrulama, yapısı ve veri tipleri açısından tüm yönleri kapsadığı için API testleri için altın standarttır.