API Test Araçları: Postman ve Otomatik Testlerle Güvenli Entegrasyon
Bir entegrasyonun çalıştığını nasıl bilirsiniz? Postman'dan otomatik testlere kadar API test araçlarını ve işletmenize sağladığı güvenceyi anlatıyoruz.
İçindekiler
- API testi neyi güvence altına alır?
- API test araçları: Postman ile elle test
- Otomatik testler: her güncellemede aynı kontrol
- Üçüncü taraf servisleri test etmek: sahte servisler ve test ortamları
- Testleri yayın sürecine bağlamak
- İşletme sahibi olarak ne sormalısınız?
- Bu işi nasıl birlikte yaparız?
- Sık sorulan sorular
- Sonuç
Yazılımcınız “entegrasyon tamam” dediğinde bunu neye dayanarak söylüyor? Bir siparişi deneyip başarılı görmek, yüzlerce farklı durumda sistemin doğru davrandığı anlamına gelmez. API test araçları tam bu boşluğu doldurur: entegrasyonun yalnızca bugün değil, her güncellemeden sonra da beklendiği gibi çalıştığını kanıtlamaya yarar. Bu yazıda en yaygın araçları, test türlerini ve bir işletme sahibi olarak neyi sormanız gerektiğini anlatıyorum.
API testi neyi güvence altına alır?
Bir API, iki yazılımın birbirine soru sorup cevap aldığı kapıdır. Test, bu kapının doğru soruya doğru cevabı verdiğini, yanlış soruyu ise düzgün şekilde reddettiğini kontrol eder. Tipik olarak şu sorulara yanıt aranır:
- Doğru verilerle yapılan istek beklenen sonucu döndürüyor mu?
- Eksik ya da hatalı veri gönderildiğinde anlaşılır bir hata mesajı geliyor mu?
- Yetkisi olmayan biri veriye erişebiliyor mu?
- Yanıt makul sürede geliyor mu, yük altında ne oluyor?
- Yeni bir güncelleme eski davranışı bozdu mu?
Genel test kavramlarını ve yazılım projelerindeki yerini yazılım testi yazısında daha geniş ele aldım; burada odak noktamız API tarafı.
API test araçları: Postman ile elle test
Postman, API isteklerini görsel bir arayüzden gönderip yanıtları incelemeyi sağlayan, geliştiricilerin en çok kullandığı araçlardan biridir. Adres, yöntem, başlıklar ve gövde girilir; gönder tuşuna basıldığında yanıt, durum kodu ve süre ekranda görünür. Benzer işi gören Insomnia, Bruno gibi alternatifler ve komut satırında curl de yaygın olarak kullanılır.
Postman’ın asıl gücü koleksiyonlardır. İlgili istekler bir klasörde toplanır, ortam değişkenleriyle test ve canlı sunucu arasında kolayca geçilir. Koleksiyon aynı zamanda yaşayan bir belge görevi görür; yeni katılan bir geliştirici API’yi buradan tanıyabilir. Bu konuda API dokümantasyonu yazısı da tamamlayıcı olacaktır.
İsteklere küçük test betikleri eklenebilir. Örneğin yanıt kodunun 200 olduğunu ve sipariş numarasının döndüğünü kontrol eden basit bir Postman testi şöyle görünür:
pm.test("Sipariş oluşturuldu", function () {
pm.response.to.have.status(200);
pm.expect(pm.response.json().order_id).to.exist;
});
Otomatik testler: her güncellemede aynı kontrol
API test araçları arasında elle çalışanlar keşif için idealdir ama tekrarlanabilir değildir. Bir geliştirici yorgunken bir adımı atlayabilir. Otomatik testler ise kod olarak yazılır ve her değişiklikte aynı titizlikle çalışır. Kullanılan dile göre PHP tarafında PHPUnit veya Pest, JavaScript tarafında Jest veya Vitest gibi araçlar tercih edilir. Postman koleksiyonları da Newman adlı komut satırı aracıyla otomatik çalıştırılabilir.
Test türleri
| Test türü | Neyi kontrol eder? | Ne zaman çalışır? |
|---|---|---|
| Birim testi | Tek bir fonksiyonun, örneğin fiyat hesaplamanın doğruluğunu | Her kod değişikliğinde |
| Entegrasyon testi | API’nin veritabanı ve diğer servislerle birlikte doğru çalışmasını | Her değişiklikte veya birleştirme öncesi |
| Sözleşme testi | Yanıtın biçiminin, alan adlarının ve türlerinin değişmediğini | Sürüm yayınlamadan önce |
| Yük testi | Yoğun trafikte yanıt süresini ve hata oranını | Büyük kampanya veya lansman öncesi |
| Güvenlik testi | Yetkisiz erişim, hatalı girdi ve sızıntı ihtimallerini | Periyodik olarak ve büyük değişikliklerde |
Üçüncü taraf servisleri test etmek: sahte servisler ve test ortamları
Ödeme, kargo veya pazaryeri entegrasyonlarında her testte gerçek bir ödeme almak ya da gerçek kargo kaydı açmak istemezsiniz. Burada iki yöntem kullanılır:
- Sağlayıcının test ortamı: Çoğu ödeme ve kargo sağlayıcısı, gerçek para veya gönderi oluşturmadan deneme yapılabilen bir test ortamı ve test kartları sunar. Test ortamının kapsamını ve kurallarını sağlayıcının güncel belgelerinden kontrol edin.
- Sahte (mock) servis: Karşı sistemin yanıtlarını taklit eden küçük bir servis yazılır. Böylece “ödeme reddedildi” ya da “servis 30 saniye yanıt vermedi” gibi gerçekte üretmesi zor senaryolar kolayca denenir.
Kendi sisteminiz için de canlı siteden ayrı bir deneme kopyası tutmak iyi bir alışkanlıktır; nasıl kurulduğunu staging ortamı yazısında anlattım.
Testleri yayın sürecine bağlamak
Otomatik testlerin en büyük faydası, kod sunucuya gönderilmeden önce kendiliğinden çalışmalarıdır. Geliştirici değişikliği kaydettiğinde testler devreye girer; biri başarısız olursa güncelleme yayına çıkmaz. Bu düzene sürekli entegrasyon denir ve CI/CD nedir yazısında adım adım açıkladım.
Küçük bir senaryo: Bir mağazanın kampanya modülünde yapılan değişiklik, kargo ücretinin API yanıtında yanlış hesaplanmasına yol açıyor. Otomatik test varsa sorun geliştiricinin bilgisayarında yakalanır; yoksa ilk fark eden, fazla kargo ücreti ödeyen müşteri olur.
İşletme sahibi olarak ne sormalısınız?
- Entegrasyonun hangi senaryoları test ediliyor; yalnızca başarılı akış mı, hata durumları da mı?
- Testler otomatik mi çalışıyor, yoksa her seferinde elle mi yapılıyor?
- Postman koleksiyonu veya test dosyaları proje teslimine dahil mi?
- Üçüncü taraf servisler için test ortamı mı, sahte servis mi kullanılıyor?
Bu soruların cevapları, uzun vadede bakım maliyetini ve kesinti riskini doğrudan etkiler.
Bu işi nasıl birlikte yaparız?
Yeni bir entegrasyon kurarken ya da mevcut bir API’yi güvenceye alırken genellikle şu yolu izliyorum:
- Kritik akışları belirleme: Sipariş, ödeme, stok gibi aksadığında işinizi en çok etkileyen senaryoları birlikte seçiyoruz.
- Kapsam ve teklif: Hangi testlerin yazılacağını, hangi servisler için test ortamı veya sahte servis kullanılacağını netleştiriyorum.
- Testleri yazma ve bağlama: Postman koleksiyonu ve otomatik testleri hazırlıyor, yayın sürecine entegre ediyorum.
- Teslim ve destek: Test dosyalarını ve nasıl çalıştırılacağını belgeleyerek teslim ediyor, sonraki güncellemelerde testleri birlikte güncel tutuyoruz.
Entegrasyonlarınızın ne kadar güvende olduğunu merak ediyorsanız iletişim sayfasından bana yazabilirsiniz.
Sık sorulan sorular
Postman ücretli mi?
Postman’ın ücretsiz bir planı ve ekip özellikleri sunan ücretli planları bulunur. Plan içerikleri değişebildiği için güncel bilgiyi Postman’ın kendi sitesinden kontrol etmek gerekir.
Küçük bir proje için otomatik test gerekli mi?
Her şeyi test etmek gerekmez, ancak ödeme ve sipariş gibi kritik akışlar için birkaç otomatik test bile ileride yapılacak güncellemelerde büyük güvence sağlar.
Testler canlı sistemde mi çalıştırılır?
Hayır. Testler geliştirici ortamında, staging kopyasında ve sağlayıcıların test ortamlarında çalıştırılır; canlı sistemde yalnızca hafif sağlık kontrolleri yapılır.
Test dosyaları bana teslim edilir mi?
Edilmelidir. Test dosyaları ve Postman koleksiyonu kaynak kodun bir parçasıdır; başka bir geliştiriciyle çalışsanız bile projeyi güvenle sürdürmesini sağlar.
Sonuç
API test araçları, entegrasyonun bugün çalıştığını göstermenin ötesinde, yarın yapılacak her değişikliği güvenli hale getirir. Projenize uygun bir test düzeni kurmak isterseniz benimle iletişime geçebilirsiniz.
