🔗 Test Zinciri — Gerçek E2E Senaryolar
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 ür
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 zorundadır. Peki her testi bağımsız yazmak daha güvenli değil mi; neden bir testin çıktısını diğerine geçirmek gerekiyor? Çünkü "kullanıcı oluştur → giriş yap → sepete ekle → sipariş ver → sil" akışındaki her adım gerçek bir kullanıcı session'ı ve gerçek veri gerektirir — bunları stub'larla test etsen, session timeout veya foreign key constraint gibi birleşim hataları gözden kaçar. Java'da JUnit'in `@TestMethodOrder(OrderAnnotation.class)` ile test sıralama yaptığında benzer bir bağımlılık zinciri kurarsın; REST Assured'da ise her adımın response'undan `jsonPath().getString("id")` veya `jsonPath().getString("token")` ile değer taşıyıp bir sonraki isteğin header'ına veya body'sine doğrudan koyarsın. QA açısından en yüksek değer: bu zinciri bir kez yazarsan, her sprint sonunda tam "happy path" akışını tek `mvn test -Dtest=E2EFlow` komutuyla doğrularsın — manuel tıklama hatası sıfır, yeniden üretim süresi sıfır, CI raporunda adım adım sonuç görünür.
Tam E2E CRUD Zinciri (reqres.in)
Micro Lab: REST Assured assertion yazma
TODO satirini beklenen cozumdeki kritik satirla degistir. Bu gercek runtime degil; amac dogru yapinin yazilmasini kontrollu olarak pekistirmek.
Adim Adim: REST Assured assertion yazma
given() ile base URL ve auth'u kur
when().get/post/put/delete ile istegi gonder
then().statusCode() ile HTTP kodunu dogrula
body() ve Hamcrest ile JSON alanlarini kontrol et
Testi JUnit/TestNG runner ve CI pipeline'a dahil et
REST Assured ile API testi yazma ve dogrulama sirasi nedir?
🎬 Test Zinciri: Bir Testin Çıktısı, Diğerinin Girdisi
POST /users (oluştur)
Yeni ID (response'tan)