Cypress Proje Yapısı ve Temel Komutlar

Cypress, modern web uygulamaları için uçtan uca (E2E) testlerin kolayca yazılmasını sağlayan güçlü bir test otomasyon framework’üdür. Proje yapısı belirli klasörler üzerinden organize edilmiştir:

  • e2e/
    Tüm test dosyalarının yer aldığı klasördür. Çalıştırılmak istenen testler bu dizin altında tanımlanmalıdır.

  • fixtures/
    Test senaryolarında ihtiyaç duyulan mock veriler bu klasör altında .json formatında tutulur. Örneğin, kullanıcı bilgileri veya API yanıtları buradan yüklenebilir.

  • support/

    • commands.js: Özel komutların (custom commands) tanımlandığı dosyadır. Tekrarlayan adımlar burada tanımlanarak testlerde yeniden kullanılabilir.

    • e2e.js: Projede kullanılacak plugin’lerin veya global ayarların yüklendiği dosyadır.


Cypress Test Runner Kullanımı

Testleri çalıştırmak için terminalde aşağıdaki komut kullanılabilir:

npx cypress open

Bu komut ile Cypress Test Runner arayüzü açılır ve tanımlı testler seçilerek çalıştırılabilir.


Temel Cypress Komutları

cy.visit()

Bir URL’e yönlendirme yapmak için kullanılır.

Örnek Kullanımlar:

describe('Temel Komutlar - cy.visit', () => {
  it('URL ziyaret etme örnekleri', () => {
    cy.visit("/") // baseUrl tanımlandıysa
    cy.visit("/commands") // baseUrl üzerinden path kullanımı
    cy.visit("https://example.cypress.io/") // baseUrl tanımlanmadıysa
    cy.visit({
      url: "https://example.cypress.io/",
      method: 'GET'
    })
  });
});

cy.title()

Sayfa başlığını doğrulamak için kullanılır.

Örnek Kullanımlar:

describe('Temel Komutlar - cy.title', () => {
  it('Sayfa başlığı doğrulama', () => {
    cy.visit("https://example.cypress.io/")
    cy.title().should('eq', "cypress.io")        // Başlık birebir eşitlik
    cy.title().should('include', "cypress")     // Başlık içerisinde geçiyorsa
    cy.title().should('contain', "cypress")     // Başlık kısmında geçiyorsa
  });
});

Test Yapısı

  • describe: Test grubunu tanımlamak için kullanılır. (Test senaryoları mantıksal olarak gruplanır.)

  • it: Test adımlarını barındıran asıl bloktur. Her it bloğu bağımsız bir testtir.

Örneğin:

describe('Login Senaryosu', () => {
  it('Geçerli kullanıcı ile giriş yapılabilmeli', () => {
    cy.visit("/login")
    cy.get('#username').type('testUser')
    cy.get('#password').type('Password123')
    cy.get('button[type=submit]').click()
    cy.url().should('include', '/dashboard')
  });
});
0
Subscribe to my newsletter

Read articles from Şeyma Nur Aksoy directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Şeyma Nur Aksoy
Şeyma Nur Aksoy