İçeriğe geç

Manual API Test Dokümanı

API (Application Programming Interface), iki yazılım bileşeninin birbiriyle iletişim kurmasını sağlayan bir arayüzdür.
REST API, HTTP protokolü üzerinden çalışan, kaynak odaklı bir yapıya sahiptir.

Manual API Testing, otomasyon araçları kullanılmadan, Postman veya cURL gibi araçlarla API isteklerinin manuel olarak test edilmesi işlemidir.

  • Postman (Koleksiyonlar, ortam değişkenleri, test scriptleri)
  • cURL (Terminal üzerinden API isteği gönderimi)

GereksinimAçıklama
Base URLhttps://reqres.in/api
Auth TürüNone (örnek API)
HeaderContent-Type: application/json
Body FormatıJSON

Test IDSenaryo AdıEndpointMetodGiriş VerisiBeklenen SonuçGerçek Sonuç
TC001Kullanıcı listesini getir/usersGET-Status Code = 200PASS
TC002Yeni kullanıcı oluştur/usersPOSTname, jobStatus Code = 201PASS
TC003Kullanıcı güncelle/users/2PUTname, jobStatus Code = 200PASS
TC004Kullanıcı sil/users/2DELETE-Status Code = 204PASS

Amaç: Kullanıcı listesini getirir.

  • Method: GET
  • URL: https://reqres.in/api/users?page=2
Terminal window
curl -X GET "https://reqres.in/api/users?page=2" -H "accept: application/json"
  • Status Code: 200
  • Response Body: Kullanıcı listesi dönmeli

Amaç: Yeni kullanıcı oluşturur.

  • Method: POST
  • URL: https://reqres.in/api/users
  • Body (raw - JSON):
{
"name": "Mehmet",
"job": "QA Engineer"
}
Terminal window
curl -X POST "https://reqres.in/api/users" -H "Content-Type: application/json" -d '{"name": "Mehmet", "job": "QA Engineer"}'
  • Status Code: 201
  • Response Body: id ve createdAt alanlarını içermeli

Amaç: Var olan kullanıcıyı günceller.

Terminal window
curl -X PUT "https://reqres.in/api/users/2" -H "Content-Type: application/json" -d '{"name": "Mehmet", "job": "Senior QA"}'
  • Status Code: 200
  • Response Body: updatedAt alanını içermeli

Amaç: Kullanıcıyı siler.

Terminal window
curl -X DELETE "https://reqres.in/api/users/2"
  • Status Code: 204

  1. Yeni bir Collection oluşturun.
  2. İçine /users endpointlerini ekleyin.
  3. Tests sekmesinde aşağıdaki script örneklerini kullanın.
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
pm.test("Response has data", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.data.length).to.be.above(0);
});
  • {{baseUrl}} = https://reqres.in/api
  • {{userId}} = Dinamik olarak kaydedilebilir (pm.environment.set("userId", jsonData.id);)

KodAçıklamaÖrnek
400Bad RequestEksik parametre
401UnauthorizedToken eksik veya geçersiz
403ForbiddenErişim reddedildi
404Not FoundGeçersiz endpoint veya ID
500Internal Server ErrorSunucu hatası

  1. Koleksiyonu çalıştırın.
  2. Sonuçları JSON veya HTML formatında dışa aktarın.
Terminal window
newman run Collection.json -r cli,html
Test IDSonuçNot
TC001PASS-
TC002PASSID döndü
TC003PASSupdatedAt alanı var
TC004PASS204 döndü

  • API testleri otomasyona geçirilebilir (Postman → Newman → CI/CD).
  • Manuel testlerde edge-case senaryolar önemlidir.
  • Yanıt süresi, hata yönetimi ve güvenlik testleri mutlaka yapılmalıdır.