button-icon

Iniciarsesión

Iniciarsesión
Archi's Academy
    Cursos
    Cursos
    #
  • Proyectos
    Proyectos
  • Archi's Academy

    Tracks

    #
  • Blog
    Blog
  • Precios
    Precios
  • Contacto
    Contacto
  • Para clubs universitarios
    Para clubs universitarios

BLACK FRIDAY

85% de descuento durante todo noviembre

whatsapp
Contáctanos
Archi's Academy

Navegación

  • Cursos
  • Proyectos
  • Blog
  • Precios
  • Para clubs universitarios
  • Contacto

Cursos

    Tracks

    • Desarrollo Frontend
    • Desarrollo Backend
    • Control de Calidad (QA)
    • Programación con IA Agentica y LLMs
    • Desarrollo Móvil
    • DevOps

    Legal

    • Política de privacidad
    • Términos de servicio

    Contacto

    +1 (217) 200 90 93
    Suite No: 8, 400 Emmet Street
    Kissimmee, Florida 34741 USA
    [email protected]

    Copyright © Tech Career Yazılım Danışmanlık A.Ş. 2026

    instagramlinkedingithubyoutubexfacebook
    visamastercardstripeiyzicoamerican-express
    ETBIS
    1. Home›
    2. Blog›
    3. Cypress ile API Testi Nasıl Yapılır? 2026 Rehberi

    API Automation Testing

    Cypress ile API Testi Nasıl Yapılır? 2026 Rehberi

    Çoğu geliştirici Cypress'i sadece buton tıklamak ve form doldurmak için kullanır. Oysa Cypress, tüm API katmanını test edebilir; istek gövdelerini, yanıt kodlarını, başlıkları ve ağ trafiğini doğrulayabilirsiniz. 2026'da QA veya backend alanında çalışıyorsanız bu yetkinliği mutlaka öğrenmelisiniz.

    Cypress ile API Testi Yapılabilir mi?

    Evet, hem de oldukça güçlü bir şekilde.
    Cypress, API testleri için iki temel araç sunar:
    • cy.request() — API'nize doğrudan HTTP çağrısı yapar. Tarayıcı arayüzünden bağımsız olarak çalışır; test suit'inizin içindeki bir HTTP istemcisi gibi düşünebilirsiniz.
    • cy.intercept() — frontend'iniz ile backend'iniz arasına girerek uygulamanızın yaptığı her ağ isteğini dinlemenizi, üzerinde doğrulama yapmanızı, değiştirmenizi veya tamamen stub'lamanızı sağlar.
    Bu iki araç birlikte iki ana senaryoyu kapsar: API'yi doğrudan test etmek ve frontend'in API ile nasıl etkileşime girdiğini test etmek.

    cy.request() ile Doğrudan API Testi

    cy.request(), Cypress'in yerleşik HTTP istemcisidir. Sunucunuza gerçek HTTP istekleri gönderir ve yanıt üzerinde tam erişim sağlayarak doğrulama yapmanıza olanak tanır.
    // Temel GET isteği
    cy.request('GET', '/api/kullanicilar').then((response) => {
      expect(response.status).to.eq(200)
      expect(response.body).to.have.length.greaterThan(0)
    })
    
    // Gövde ve başlıklarla POST isteği
    cy.request({
      method: 'POST',
      url: '/api/kullanicilar',
      headers: {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer token-degerim'
      },
      body: {
        ad: 'Ayşe Yılmaz',
        email: '[email protected]'
      }
    }).then((response) => {
      expect(response.status).to.eq(201)
      expect(response.body).to.have.property('id')
      expect(response.body.email).to.eq('[email protected]')
    })
    
    // DELETE ve 204 doğrulaması
    cy.request('DELETE', '/api/kullanicilar/1').its('status').should('eq', 204)
    
    cy.request() ile doğrulayabilecekleriniz:
    • response.status — HTTP durum kodu
    • response.body — parse edilmiş yanıt gövdesi (JSON otomatik parse edilir)
    • response.headers — yanıt başlıkları
    • response.duration — isteğin süresi
    • response.requestHeaders — gönderilen istek başlıkları

    cy.intercept() ile Ağ İsteklerini Yakalama ve Stub'lama

    cy.intercept(), entegrasyon testleri için daha güçlü bir araçtır. Çalışan uygulamanızın gerçek ağ trafiğini yakalar; üzerinde doğrulama yapmanızı, değiştirmenizi veya tamamen kendi yanıtınızla değiştirmenizi sağlar.
    // İstek üzerinde dinleme ve doğrulama
    cy.intercept('GET', '/api/urunler').as('urunleriGetir')
    cy.visit('/urunler')
    cy.wait('@urunleriGetir').then(({ request, response }) => {
      expect(response.statusCode).to.eq(200)
      expect(response.body).to.be.an('array')
    })
    
    // Fixture verisiyle yanıtı stub'lama
    cy.intercept('GET', '/api/kullanicilar', { fixture: 'kullanicilar.json' }).as('kullanicilariGetir')
    cy.visit('/panel')
    cy.wait('@kullanicilariGetir')
    cy.get('[data-testid="kullanici-listesi"]').should('have.length', 3)
    
    // Hata durumunu simüle etme
    cy.intercept('POST', '/api/siparisler', {
      statusCode: 500,
      body: { hata: 'Sunucu hatası' }
    }).as('basarisizSiparis')
    cy.visit('/odeme')
    cy.get('[data-testid="siparis-ver"]').click()
    cy.wait('@basarisizSiparis')
    cy.get('[data-testid="hata-mesaji"]').should('be.visible')
    

    Cypress API Testiyle Neler Test Edebilirsiniz?

    SenaryoAraçÖrnek
    Yanıt gövdesini doğrulamacy.request() / cy.intercept()JSON alanları, dizi uzunluğu, iç içe nesneler
    Durum kodlarını doğrulamaHer ikisi200, 201, 400, 401, 404, 500
    İstek başlıklarını doğrulamacy.intercept()Authorization, Content-Type
    Yanıt başlıklarını doğrulamaHer ikisiCache-Control, CORS başlıkları
    Yanıtı stub'lamacy.intercept()Fixture veya sabit gövdeyle değiştirme
    Ağ hatalarını simüle etmecy.intercept()500 hatası, zaman aşımı, boş yanıt
    Yanıtı geciktirmecy.intercept()Yüklenme durumlarını test etme
    İstek tetiklenene kadar beklemecy.intercept().as() + cy.wait() kullanımı
    Auth akışlarını test etmecy.request()Giriş, token yenileme, çıkış
    API üzerinden test verisi oluşturmacy.request()UI testlerinden önce kullanıcı/kayıt oluşturma

    Cypress ile Diğer API Test Araçlarının Karşılaştırması

    CypressPostmanSupertestREST Assured
    Temel kullanımE2E + API entegrasyon testleriManuel + otomatik API testleriNode.js API birim testleriJava API testleri
    Frontend entegrasyonuEvet — UI ve API birlikte test edilirHayırHayırHayır
    CI/CD desteğiEvetEvet (Newman CLI)EvetEvet
    Ağ stub'lamaEvet (cy.intercept)HayırHayırHayır
    DilJavaScript / TypeScriptPostman scriptingJavaScriptJava
    En iyi kullanımFull-stack QA mühendisleriAPI keşfi ve sözleşme testiBackend birim testleriJava backend'leri
    Öğrenme eğrisiJS geliştiricileri için düşükDüşükDüşükOrta
    Cypress'in en büyük avantajı şudur: API'yi ve UI'ın o API'ye verdiği tepkiyi aynı testte doğrulayabilirsiniz. POST endpoint'i 201 döndürdüğünde UI'ın doğru şekilde güncellenip güncellenmediğini hemen kontrol edebilirsiniz. Bunu tek adımda yapan başka bir araç yoktur.

    Gerçek QA Projelerinde Yaygın Kullanım Kalıpları

    Kalıp 1: UI testlerinden önce API ile test verisi oluşturma
    beforeEach(() => {
      cy.request('POST', '/api/test/veritabani-sifirla')
      cy.request('POST', '/api/kullanicilar', { ad: 'Test Kullanıcı', email: '[email protected]' })
    })
    
    Kalıp 2: Giriş formunu doldurmak yerine API üzerinden kimlik doğrulama
    // Her testte form doldurmaktan çok daha hızlı
    cy.request('POST', '/api/auth/giris', {
      email: '[email protected]',
      sifre: 'sifre123'
    }).then(({ body }) => {
      window.localStorage.setItem('token', body.token)
    })
    cy.visit('/panel')
    
    Kalıp 3: Yüklenme ve hata durumlarını test etmek için intercept kullanma
    cy.intercept('GET', '/api/veri', (req) => {
      req.reply({ delay: 2000, body: [] })
    })
    cy.visit('/sayfa')
    cy.get('[data-testid="yukleniyor-iskeleti"]').should('be.visible')
    

    Cypress API Testi ve QA Kariyer Yolu

    API testleri, yalnızca UI test edebilen bir QA mühendisini full-stack test edebilenden ayıran ilk becerilerden biridir. Hem ağ davranışını hem de UI yanıtını kapsayan Cypress testleri yazabilmek, 2026 yılındaki QA iş ilanlarında öne çıkan bir yetkinliktir.
    Cypress'in resmi belgelerinde tüm ağ isteği komutları için çalıştırılabilir örnekler bulabilirsiniz: example.cypress.io/commands/network-requests.
    Archi's Academy'de geliştirilen Backend Development track'i; test yazma pratiğini izole alıştırmalar olarak değil, gerçek proje senaryoları içinde öğretir. API tasarlarsınız, deploy edersiniz ve aynı iş akışında test edersiniz; tıpkı gerçek bir ekipteki junior geliştirici gibi.
    cy.intercept()'in var olduğunu bilmekle onu ne zaman kullanacağını, neyi stub'layıp neyi gerçek veriyle test edeceğini ve API testlerini uçtan uca bir akışa nasıl entegre edeceğini bilmek arasındaki fark, gerçek bir QA rolünde önemli olan şeydir.

    ¿Listo para convertir el conocimiento en habilidades reales?

    Empieza a construir con formación guiada por proyectos y gana experiencia práctica desde el primer día.


    Gerçek Backend ve QA Becerilerini Geliştirmeye Başla

    → Backend Development Track'i Keşfet →
    Archi's Academy Backend Development Track
    Archi's Academy Backend Development Track
    → Frontend Development Track'i Keşfet →
    Archi's Academy Frontend Development Track
    Archi's Academy Frontend Development Track

    Sıkça Sorulan Sorular

    Cypress ile REST API testi yapılabilir mi? Evet. cy.request() komutu herhangi bir URL'e gerçek HTTP isteği gönderir; GET, POST, PUT, PATCH, DELETE desteklenir. Yanıt gövdesi, durum kodu, başlıklar ve süre üzerinde doğrulama yapabilirsiniz. Tarayıcı açık olması gerekmez; bu da Cypress'i mevcut test suit'inizde kullanabileceğiniz bir API test istemcisine dönüştürür.
    Cypress'te cy.request() ile cy.intercept() arasındaki fark nedir? cy.request() testinizden doğrudan bir HTTP çağrısı yapar; bir script'ten API çağırmak gibi düşünebilirsiniz. cy.intercept() ise çalışan frontend uygulamanız ile ağ arasına girerek UI kodunuzun yaptığı istekleri dinlemenizi, doğrulamanızı veya stub'lamanızı sağlar. API'nin kendisini test etmek için cy.request()'i, frontend'in API yanıtlarını nasıl işlediğini test etmek için cy.intercept()'i kullanın.
    Cypress'te API yanıtları stub'lanabilir mi? Evet. cy.intercept() ile herhangi bir API yanıtını fixture verisi, sabit bir gövde, belirli bir durum kodu veya gecikmeli bir yanıtla değiştirebilirsiniz. Bu özellik; hata durumlarını (500 yanıtı), yüklenme durumlarını (gecikmeli yanıt) ve uç durumları (boş dizi, null alanlar) backend'in bu koşulları yeniden oluşturmasına gerek kalmadan test etmek için oldukça kullanışlıdır.
    Cypress'te bir API çağrısını nasıl beklerim? cy.intercept() ile isteği .as('aliasAdi') kullanarak adlandırın, ardından cy.wait('@aliasAdi') ile testin o istek tamamlanana kadar beklemesini sağlayın. Bu yöntem, keyfi cy.wait(2000) zaman aşımlarından çok daha güvenilirdir ve doğrulama için tam istek ile yanıt nesnesine erişim sağlar.
    Cypress, Postman'ın yerini alabilir mi? Otomatik, entegre testler için evet; Cypress, bir CI pipeline'ında Postman'ın yaptıklarını karşılayabilir. Postman, manuel API keşfi, sözleşme belgesi oluşturma ve frontend olmadan API'leri izole test etmek için hâlâ daha iyi bir seçenektir. API ve UI'ın aynı test çalışmasında birlikte nasıl çalıştığını test etmeniz gerektiğinde Cypress daha üstündür.
    Archi's Academy'de Cypress öğrenebilir miyim? Archi's Academy'nin Backend Development track'i, gerçek proje simülasyon modeli kapsamında test yazımını içerir. API tasarlar, deploy eder ve testlerinizi yaygın kullanılan araçlarla yazarsınız; yalnızca lokal geliştirmede değil, gerçek bir ekipte junior geliştirici olarak çalışırken kullanacağınız iş akışının aynısıyla. Ücretsiz 1 haftalık deneme ile başlayın.

    Yaparak Öğren. Yaparak Kanıtla. İşe Gir.
    → Tüm Skill Track'leri Keşfet →

    Cypress, API testi veya hangi track'in hedeflerinize uygun olduğu hakkında sorularınız mı var? Archi's Academy ekibi her seviyeden geliştiriciyle çalışmaktadır. İstediğiniz zaman bize ulaşın.
    dirDirector of Engineering: Archi's Academy

    Ahamad Cholassery

    Çarşamba, May 13, 2026

    ¿Listo para convertir el conocimiento en habilidades reales?

    Empieza a construir con formación guiada por proyectos y gana experiencia práctica desde el primer día.

    TOC

    Table of Content

    • 01Cypress ile API Testi Yapılabilir mi?
    • 02cy.request() ile Doğrudan API Testi
    • 03cy.intercept() ile Ağ İsteklerini Yakalama ve Stub'lama
    • 04Cypress API Testiyle Neler Test Edebilirsiniz?
    • 05Cypress ile Diğer API Test Araçlarının Karşılaştırması
    • 06Gerçek QA Projelerinde Yaygın Kullanım Kalıpları
    • 07Cypress API Testi ve QA Kariyer Yolu
    • 08Gerçek Backend ve QA Becerilerini Geliştirmeye Başla
    • 09Sıkça Sorulan Sorular