Bir API'yi test ederken, genellikle ilk kontrol ettiğimiz şeylerden biri HTTP durum kodudur.
Örneğin, bir GET isteği göndeririz ve API şunu döndürür:
200 OK
İlk bakışta her şey yolunda görünüyor. Ancak, test burada bitmemeli.
Bir 200 OK yanıtı yalnızca HTTP isteğinin başarıyla işlendiğini gösterir. Döndürülen verilerin doğru olduğunu garanti etmez.
Örneğin, kullanıcı bilgilerini döndüren bir API düşünün:
GET /api/users/15
API 200 OK döndürebilir. Ancak, yanıt yanlış kullanıcıya ait bilgiler içeriyorsa, hala bir sorun var demektir. Teknik olarak API başarılı bir HTTP yanıtı döndürdü, ancak uygulama beklenildiği gibi çalışmıyor.
Bu yüzden bir API'yi test ederken yalnızca durum kodunu kontrol etmek yeterli değildir.
Peki, başka neleri kontrol etmeliyiz?
1. Yanıt Gövdesi
Yanıt verilerinin gerçekten beklediğimiz şey olup olmadığını kontrol etmeliyiz.
Örneğin, ID'si 15 olan kullanıcıyı istediğimizde, yanıt gerçekten id: 15'i içeriyor mu?
2. Yanıt Şeması
Yanıtta beklenen tüm alanlar mevcut mu?
Örneğin:
{
"id": 15,
"name": "User",
"email": "user@example.com"
}
Eğer id, name ve email alanlarını bekliyorsak, yanıtta bunların gerçekten mevcut olduğunu doğrulamalıyız.
3. Veri Tipleri
Alanların veri tipleri de önemlidir.
Örneğin, id değerinin bir tam sayı olması beklenebilir, ancak API bunu bir string olarak döndürebilir:
{
"id": "15"
}
İlk bakışta bu yanıt doğru görünebilir. Ancak, API sözleşmesi id'nin bir tam sayı olmasını gerektiriyorsa, bu hala bir sorundur.
4. İş Kuralları
Kontrol edilmesi gereken en önemli şeylerden biri, API'nin beklenen iş kurallarını takip edip etmediğidir.
Örneğin, bir ürünün stokta 0 adet varsa, API bu ürünün satın alıma uygun olduğunu belirtmemelidir.
Durum kodu hala 200 OK olabilir, ancak bir iş kuralı ihlal edilirse, test başarısız olmalıdır.
Sonuç
Şu şekilde düşünmek yerine:
“200 OK aldım, bu yüzden test başarılı.”
şu soruyu sormalıyız:
“API beklenildiği gibi çalışıyor mu?”
İyi bir API testi yalnızca HTTP durum kodunu doğrulamaz. Aynı zamanda yanıt gövdesi, yanıt şeması, veri tipleri ve iş kuralları gibi şeyleri de kontrol eder.
Bu yaklaşım, özellikle API test otomasyonuyla çalışırken daha güvenilir ve anlamlı otomatik testler yazmamıza yardımcı olur.
Yorumlar
Yorum yapmak için giriş yapmalısın.
Henüz yorum yok. İlk yorumu sen yap!