🔥 Otomatik Test Yazma
Otomatik Test Yazma: Postman test script'leri, fabrika konveyör bandının sonundaki bir kalite kontrol kapısı gibi çalışır — her ürün (API response'u) dışarı çıkmadan önce otomati
Postman test script'leri, fabrika konveyör bandının sonundaki bir kalite kontrol kapısı gibi çalışır — her ürün (API response'u) dışarı çıkmadan önce otomatik bir inceleme sürecinden geçer. Kontrolör sadece etikete (200 status kodu) bakmaz; boyutları ölçer (response time 500ms'nin altında mı), malzeme listesini kontrol eder (JSON schema doğru mu), seri numarasının boş olmadığını doğrular (id field null mı) ve ürünün kopya olmadığını teyit eder (token benzersiz mi). Şimdi gerçek soru: iş mantığını test etmek için zaten Java'da JUnit assertion'ları yazıyorsan neden Postman'da da JavaScript assertion yazmak gerekiyor? Çünkü Postman testleri HTTP sınırında, JVM'nin içinde değil çalışır — herhangi bir harici tüketicinin deneyimlediği şekliyle API sözleşmesinin doğru olduğunu, uygulama dilinden bağımsız olarak kanıtlarlar. CI açısından bakıldığında Newman'da başarısız olan bir Postman testi, bozuk bir API sözleşmesidir: unit testlerin hiçbir zaman yakalamadığı sessiz regresyon türü — bir mobil uygulamanın veya üçüncü taraf entegrasyonunun yanlış veri formatları, beklenen öğeler yerine boş diziler veya başarısız bir işlemi gizleyen 200 status kodları almasına yol açan türden hatalar.
pm.test() API — Assertion Yazma
Tests sekmesi, her istekten sonra JavaScript çalıştırır. pm (Postman) nesnesi tüm assertion araçlarını sağlar. Sonuçlar yanıt panelindeki "Test Results" sekmesinde ✅ veya ❌ olarak görünür.
Tests Sekmesi — Temel Assertion'lar:
pm.test() ile pm.expect() Arasındaki Fark Neden Önemli?
pm.test("isim", fn) bir test BLOĞU…
`pm.test("isim", fn)` bir test BLOĞU tanımlar ve Test Results panelinde GÖRÜNECEK ismi verir — Java'da `@Test public void testX()` yazmaya benzer.
pm.expect(...) o blok İÇİNDE gerçek…
`pm.expect(...)` o blok İÇİNDE gerçek doğrulamayı yapan Chai assertion'ıdır — `pm.test`'siz bir `pm.expect` de çalışır ama Test Results'ta AYRI bir satır olarak GÖRÜNMEZ.
Bir response için 5 ayrı pm.test()…
Bir response için 5 ayrı `pm.test()` yazmak, birini FAIL etse bile diğer 4'ünün ÇALIŞMAYA devam etmesini sağlar — bir kod bloğu bir yerde patlarsa TÜMÜNÜN durduğu klasik try/catch'ten FARKLI bir davranış.
Java QA mühendisleri API testi için REST Assured kullanır. Postman aynı BDD tarzı assertion kavramlarını kullanır — Java yerine JavaScript (Chai kütüphanesi).
Her iki araç da BDD tarzını (given/when/then) kullanır. pm.test() testi adlandırır; pm.expect() assertion'ı yapar. Chai assertion kütüphanesi Postman'a dahil.
İstek Zincirleme — İstekler Arası Veri Aktarımı