🧪 REST Assured
Java API otomasyonu için REST Assured öğren: istek zincirleme, assertion yazımı, serialization, authentication ve CI'a hazır test tasarımı.
REST Assured, Java'da REST API testleri yazmak için kullanılan DSL kütüphanesidir. given().when().then() sözdizimi, POJO desteği, JSON Schema validation ve CI/CD entegrasyonu ile kurumsal projelerde sektör standardı haline gelmiştir. Test ettiğin API'nin REST Assured'a ulaşmadan önce Java/Spring, Express, NestJS ile nasıl geliştirildiğini görmek ister misin? /api-testing sayfasına bak.
Bu sayfada neler öğreneceksin
- 🏠 Neden REST Assured? — REST Assured, bir müzik stüdyosundaki "ses tamponu" gibi çalışır: prodüktör (geliştirici) stüdyodan çıktıktan sonra her oturumun kaydının aynı kalitede olmasını müzisyen yerine seviyelendirici sağlar — ama buradaki "kalite" API sözleşmesidi
- ⚙️ Kurulum ve Proje Yapısı — pom.xml + BaseTest sınıfı, bir araba fabrikasındaki "kalıp çerçevesi" gibidir: kalıp bir kez kuruldu mu her seri üretim arabası aynı çerçeveden geçer — vidalama robotunun her seferinde çerçeveyi sıfırdan yapmasına gerek kalmaz. "Zaten her testte
- 📡 Temel HTTP İstekleri (reqres.in ile) — İlk REST Assured testini yazmak, bir telsiz alıcısının frekansını ayarlamaya benzer: doğru frekansı (baseUri + endpoint) ve doğru protokolü (HTTP verb + headers) bulduğunda cevap kendi gelir — bulmasan da statik kalır. Peki Postman'da zaten aynı URL'e istek at
- 🔐 Kimlik Doğrulama — API kimlik doğrulaması, bir banka kasasının çift anahtarlı kilitlemesine benzer: kasayı açmak için hem banka yöneticisinin anahtarı (server secret) hem senin anahtarın (token/API key) aynı anda dönmek zorundadır — biri olmadan diğeri işe yaramaz. Peki Postman'
- 📦 POJO & Jackson — Tip-Safe API Testi — Ham String JSON yazmak, bir sözleşme metnini elle kopyalayan noter gibidir: her harfi tek tek basar, yanlış yazsa imza tökezler ama kağıt kabul eder — hata ancak mahkemede ortaya çıkar. POJO kullanmak ise o sözleşme metnini bir yazılım şablonuna dönüştürmek gi
- ✅ Assertions — Hamcrest Derinlemesine — Hamcrest assertion'ı, bir kalite kontrol memurunun ürün ölçüm raporuna benzer: "ölçülen: 10.2 mm, tolerans: 10.0±0.5, GEÇER" yazmak yerine sadece "GEÇER" demek yeterli değildir — ne ölçüldüğü, neyle karşılaştırıldığı ve fark ne kadar olduğu
- 🗂️ JSON Path & Schema Validation — JSON Path, derin depolanmış verilere ulaşmak için kullanılan bir depo haritası gibidir: "3. koridorun 2. rafındaki 5. kutudaki kırmızı kutuyu bul" demek yerine `data.items[2].colors[4]` yazarsın — depo görevlisi koordinatı takip eder, her kutuyu açma
- 🔗 Test Zinciri — Gerçek E2E Senaryolar — Zincirli API testi, bir lokantanın sipariş zincirini takip eden "mutfak takip sistemi" gibi çalışır: masa siparişi girmeden mutfağa yemek üretme isteği atılamaz, yemek teslim edilmeden ödeme alınamaz — her adım bir öncekinin state'ini taşımak zorunda