📡 Temel HTTP İstekleri (reqres.in ile)
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ü
İ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 atabiliyorken neden aynı işi kod olarak yazmak gerekiyor? Çünkü Postman'daki her manuel tıklama "şu an" çalıştığını kanıtlar; REST Assured'daki her @Test ise "her zaman" çalışmaya devam ettiğini kanıtlar. Java'da `HttpURLConnection` veya `HttpClient` ile HTTP isteği yapabilirsin ama 15 satır boilerplate gerekir; REST Assured'daki `given().when().get("/users").then()` zinciri aynı işi 3 satıra indirir ve assertion'ı doğrudan bu zincire eklemene izin verir. QA açısından pratik değer: reqres.in ile yazdığın test, gerçek projenin API'sine geçerken yalnızca baseUri değişir — auth token şeması veya request body yapısı değişmediği sürece test kodu aynı kalır ve bu "yeniden kullanılabilirlik" sana her sprint başında 2-3 saatlik adaptasyon süresini kazandırır.
given/when/then — REST Assured Zinciri Canlı
"▶ Testi Çalıştır" butonuna bas: given() → when() → then() zincirinin adım adım nasıl çalıştığını, isteğin gönderilişini ve assertion'ların koşmasını izle.
GET — Sayfalı Kullanıcı Listesi
Micro Lab: REST Assured assertion yazma
TODO satirini beklenen cozumdeki kritik satirla degistir. Bu gercek runtime degil; amac dogru yapinin yazilmasini kontrollu olarak pekistirmek.
queryParam("page", 2) URL'i Nasıl Değiştirir?
`.queryParam("page", 2)` çağrısı `GET /api/users` adresine `?page=2` EKLER — URL'i elle string birleştirerek yazmak yerine REST Assured bunu SENİN için kodlar.
`.body("data", hasSize(6))` yanıttaki `data` dizisinin TAM OLARAK 6 eleman içerdiğini doğrular — bu, `reqres.in`'in sayfa başına 6 kullanıcı döndürdüğü VARSAYIMINI test eder.
.body("data.first_name"…
`.body("data.first_name", everyItem(notNullValue()))` dizideki HER TEK kullanıcının `first_name` alanının dolu olduğunu tek satırda doğrular — 6 ayrı assertion yazmaya GEREK kalmaz.
.time(lessThan(5000L)) performansı da…
`.time(lessThan(5000L))` performansı da AYNI zincire ekler — fonksiyonel doğruluk VE hız tek bir testte birlikte kanıtlanır.
GET — ID ile Tek Kayıt ve 404 Testi