Postman ile API (Arayüz) Testi ve Test Otomasyonu

Postman ile API (Arayüz) Testi ve Test Otomasyonu

Yazılım geliştirme süreçlerinde çoğu zaman önyüzden (frontend) çok arayüz (backend) tarafında işler döner. Kullanıcıların görmediği, ama sistemin düzgün çalışması için temel olan bu katmanları test etmek her projenin kalitesi açısından hayati önem taşır. İşte burada devreye arayüz testleri ve bu testlerde sıklıkla kullandığımız Postman giriyor.

Bu yazıda, kendi öğrendiklerim üzerinden; arayüz testlerini nasıl gerçekleştirdiğimi, Postman’de nasıl test yazdığımı ve bu testleri otomasyona nasıl bağladığımı anlatacağım. Ayrıca Jenkins ile nasıl sürekli entegrasyon sağlanabileceğine de değineceğim.


Arayüz (API) Testleri Nedir?

Basitçe söylemek gerekirse, önyüz (Frontend) kullanıcıya görünen kısımdır; arayüz (Backend) ise o kısımdan yapılan işlemlerin arka planda işlenmesini sağlar. Genelde uygulamalarda ilk olarak bu arayüz tasarlanır, ardından bu yapıya uygun olarak önyüz hazırlanır.

Arayüz testleri, kullanıcıların görmediği ama sistemin işleyişi açısından çok kritik olan bu arka planı kontrol eder. Örneğin bir ödeme işlemi yapıldığında sadece “ödeme başarılı” mesajı yetmez — arka planda gerçekten doğru işlem yapılmış mı, veri doğru şekilde veritabanına kaydedilmiş mi gibi kontroller de önemlidir.

Bu testlerle:

  • Hatalar geliştirmenin erken aşamalarında tespit edilir.
  • Uygulamanın test kapsamı genişletilir.
  • Canlıya çıktıktan sonra oluşabilecek sorunlar azaltılır.

Postman ile Arayüz Testi

Postman, API’leri test etmek için oldukça pratik bir araç. Hem sade arayüzü hem de sunduğu fonksiyonlarla, ister manuel ister otomatik testlerde kullanmak mümkün.

HTTP Metotları

Arayüz testlerinde en çok kullandığımız HTTP metodları şunlardır:

MetotAçıklama
GETVeriyi sadece okur, değişiklik yapmaz.
POSTYeni veri ekler.
PUTVar olan veriyi tamamen günceller.
PATCHVerinin sadece belli kısımlarını günceller.
DELETEVeri silme işlemi yapar.

Response Kodları

API’den gelen yanıta göre işlemin durumu hakkında fikir sahibi oluruz. Örnekler:

  • 200: Başarılı
  • 422: Hesap blokeli
  • 500: Sunucu hatası

Bunları test senaryolarımızda kullanarak başarılı ya da başarısız durumları kontrol edebiliriz.


Postman’de Test Yazımı ve Değişkenler

Postman içinde JavaScript ile test yazmak oldukça kolay. Basit bir örnek: A değişkeni ile B değişkenini kontrol eden ve aynı ise "a ve b eşittir” , değil ise “a ve b farklıdır ” yazdıran ve kontrol eden kod ;

let a = "udemy";
let b = "udemy";

pm.test("a ve b eşittir", function () {
pm.expect(a).to.eql(b);
});

pm.test("a ve b farklıdır", function () {
pm.expect(a).is.not.eql("example");
});

Değişkenler

Testleri daha dinamik hale getirmek için değişken kullanımı şart. Environment, global ya da local değişkenler tanımlayarak farklı test senaryoları için aynı testi yeniden kullanabiliriz.

Ayrıca Collection Runner ile bu testleri veri dosyaları üzerinden defalarca çalıştırmak da mümkün.


JSON Çözümleme ve Fonksiyonlar

API’lerin büyük çoğunluğu JSON veri döner. Bu verileri analiz edebilmek için JSON formatına çevirmesi gerekir ve Postman şu gibi fonksiyonlar sunar:

  • pm.response.json() – JSON veriyi parse eder.
  • xml2Json(responseBody) – XML veriyi JSON’a çevirir.
  • cheerio.load(pm.response.text()) – HTML çözümleme için kullanılır.

Bir JSON nesnesinin içinde başka nesneler varsa, dıştan içe doğru giderek çözümleme yapmak gerekir.


Test Akışı: Pre-script → Request → Test

Postman’de çağrı yapmadan önce çalışan bir bölüm daha var: Pre-script.

Burada örneğin token üretme, tarih hesaplama gibi çağrıyı dinamikleştirecek işlemleri önceden yazabiliriz. Akış şöyle:

  1. Pre-Script (veri hazırlığı)
  2. Request (API çağrısı)
  3. Test (cevap kontrolü)

Bu yapı sayesinde her bir çağrı, kendi verisiyle ve kontrollü bir şekilde çalışır.


Test Otomasyonu: Monitors & Newman

Postman Monitors

Monitors, belirli saatlerde veya periyotlarla testlerin otomatik olarak çalışmasını sağlar. Örneğin her sabah saat 09:00’da API sağlığını test ettirmek için kullanılabilir. Sürekli belirli zamanlarda testin çalışmasını istiyorsak Monitors’den yararlanabiliriz. Bu önceden planlanmış görevi gibi bir şey.

Newman

Postman testlerini komut satırından çalıştırmak istiyorsan Newman kullanabilirsin. Örneğin Jenkins gibi sistemlerde test otomasyonu sağlamak için oldukça kullanışlıdır.

bashKopyalaDüzenlenewman run koleksiyon.json -e ortam.json

Jenkins ile Sürekli Entegrasyon

Kod gönderiminden sonra testlerin otomatik çalışması gerekiyorsa Jenkins burada devreye giriyor. Bu araç sayesinde her “commit” sonrası testler otomatik olarak tetiklenebilir.

Jenkins’te bilmen gereken temel kavramlar:

  • Job: Jenkins’te oluşturduğumuz görev.
  • Node: Görevin çalıştığı makine/sunucu.
  • Pipeline: Görevlerin adım adım çalıştığı yapı.

Newman komutlarını Jenkins pipeline’ına eklediğimizde, artık her değişiklik sonrası testler otomatik çalışır hale gelir. Bu da testleri sadece “elle” değil, sürekli ve otomatik şekilde yapabilmeyi sağlar ve otomasyon haline gelmiş olur.

Comments

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir