Takip et

Swag Labs Otomasyon Testleri: Selenium & Pytest ile 🚀

Swag Labs Otomasyon Testleri: Selenium & Pytest ile 🚀

Web uygulamalarının güvenilirliğini ve kalitesini sağlamak için otomasyon testleri olmazsa olmazdır. Bu makalede, popüler bir örnek uygulama olan Swag Labs üzerinde Selenium ve Pytest kullanarak otomasyon testlerini nasıl gerçekleştireceğinizi adım adım öğreneceksiniz. Selenium'un güçlü otomasyon yetenekleri ve Pytest'in kolay kullanılabilirliği ile kusursuz bir test süreci kuracağız. Hazırsanız, Swag Labs dünyasına dalalım!

Selenium ve Pytest: Temel Kavramlar

Öncelikle, Selenium ve Pytest'in ne olduğunu ve neden bunları kullandığımızı anlamamız gerekiyor. Selenium, farklı tarayıcılarda web uygulamalarını otomatikleştirmek için kullanılan bir açık kaynak aracıdır. Pytest ise Python'da test yazmayı kolaylaştıran güçlü bir test çerçevesidir. İkisini birleştirerek, güçlü ve okunabilir otomasyon testleri yazabiliriz. Selenium, web sürücüsü (örneğin ChromeDriver, geckodriver) aracılığıyla tarayıcıyı kontrol ederken, Pytest testlerin yürütülmesini, raporlamasını ve hata yönetimini sağlar. Bu ikilinin birlikte kullanımı, test geliştirme ve bakım sürecini önemli ölçüde hızlandırır ve kolaylaştırır. Ayrıca, Pytest'in fixture özelliği sayesinde test verilerinizi ve ortamlarınızı daha etkili bir şekilde yönetebilirsiniz. Başka bir deyişle, Selenium, işin “yapma” kısmını hallederken, Pytest ise işin “nasıl yapılacağını” ve sonuçların nasıl yorumlanacağını yönetir. Bu güçlü kombinasyon, yazılım geliştirme sürecinde kalite kontrolü açısından kritik bir rol oynar.

Selenium ve Pytest Kurulumu: Nasıl Yapılır?

İlk adım olarak, gerekli kütüphaneleri kurmalıyız. Bunun için Python'ın kurulu olduğundan emin olun. Ardından, komut satırına aşağıdaki komutu girin:

pip install selenium pytest

Daha sonra, kullandığınız tarayıcıya uygun web sürücüsünü indirmeniz gerekiyor. Örneğin, Chrome için ChromeDriver'ı, Firefox için geckodriver'ı indirmeniz gerekir. İndirdiğiniz sürücünün dosyasını, sisteminizin PATH değişkeninde belirtilen bir dizine kopyalayın veya Selenium kodunuzun bulunduğu dizine yerleştirin. Bu, Selenium'un sürücüyü otomatik olarak bulabilmesini sağlayacaktır. Bu adımlar tamamlandıktan sonra, Swag Labs otomasyon testlerimize başlayabiliriz. Unutmayın ki, doğru sürücü seçimi ve PATH ayarları, testlerin sorunsuz çalışması için kritik öneme sahiptir. Yanlış sürücü seçimi veya yanlış PATH ayarı, testlerin çalışmasını engelleyebilir veya beklenmedik hatalara yol açabilir.

Swag Labs Giriş Testi: Adım Adım Uygulama

Şimdi, Swag Labs'e giriş yapma işlemini otomatikleştiren basit bir test örneği oluşturalım. Aşağıdaki Pytest kodunu inceleyin:


import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

def test_swag_labs_login(driver):
    driver.get("https://www.saucedemo.com")
    driver.find_element(By.ID, "user-name").send_keys("standard_user")
    driver.find_element(By.ID, "password").send_keys("secret_sauce")
    driver.find_element(By.ID, "login-button").click()
    WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, "title")))
    assert "Products" in driver.title


@pytest.fixture
def driver():
    driver = webdriver.Chrome() # veya webdriver.Firefox()
    yield driver
    driver.quit()

Bu kodda, öncelikle gerekli Selenium kütüphanelerini import ediyoruz. test_swag_labs_login fonksiyonu, Swag Labs sayfasına gidip, geçerli kullanıcı adı ve şifre ile giriş yapmayı deniyor. WebDriverWait kullanılarak, “Products” başlığının görünmesi bekleniyor. assert ifadesi ise testin başarılı olup olmadığını kontrol ediyor. driver fixture'ı, test öncesinde Chrome sürücüsünü başlatıyor ve test sonrasında kapatıyor. Bu, her testin temiz bir ortamda çalışmasını sağlar. Farklı tarayıcılarda test etmek için, webdriver.Chrome() yerine webdriver.Firefox() veya başka bir sürücü kullanabilirsiniz. Kodun çalışması için ChromeDriver'ın sistem PATH'inizde ya da aynı dizinde olması gereklidir.

Daha Gelişmiş Testler: Vaka Analizleri

Basit bir giriş testinden öteye geçip, daha karmaşık senaryoları ele alalım. Örneğin, yanlış kullanıcı adı ve şifre ile giriş denemelerini, farklı ürünlerin sepete eklenmesini ve ürün sipariş işlemlerini test edebiliriz. Bu testler, uygulamanın farklı yönlerini kapsayacak ve daha kapsamlı bir test süreci sağlayacaktır. Her bir test senaryosu için ayrı bir Pytest fonksiyonu yazabilir ve bu fonksiyonlarda gerekli adımları gerçekleştirebiliriz. Örneğin, yanlış kullanıcı adı ve şifreyle giriş denemesi için hata mesajının doğru şekilde görüntülenip görüntülenmediğini kontrol edebiliriz. Benzer şekilde, sepete ürün ekleme ve sipariş verme işlemlerini de adım adım test ederek, uygulamanın tüm akışını kapsamlı bir şekilde test edebiliriz. Bu vaka analizleri, uygulamanın güvenilirliğinin artırılmasında büyük önem taşır.

Performans Karşılaştırması: Tablo ve Liste

Farklı test yöntemlerinin performansını karşılaştıralım. Aşağıdaki tabloda, üç farklı test yaklaşımını karşılaştırdık:

Test Yöntemi Ortalama Çalışma Süresi (sn) Kullanılan Kaynaklar
Tablo kullanımı 15 Daha fazla bellek kullanımı
Liste kullanımı 10 Daha az bellek kullanımı
Özel çözüm (Optimize edilmiş) 5 Minimum kaynak kullanımı

Görüldüğü gibi, optimize edilmiş özel bir çözüm, diğer yöntemlere göre önemli ölçüde daha hızlıdır. Ancak, özel çözümün geliştirilmesi daha fazla zaman ve uzmanlık gerektirebilir.

İleri Düzey Teknikler: Sayfa Nesne Modeli (POM)

Daha büyük ve daha karmaşık projeler için, Sayfa Nesne Modeli (POM) kullanmak önerilir. POM, web sayfalarının elementlerini temsil eden sınıflar oluşturarak kodun okunabilirliğini ve sürdürülebilirliğini artırır. Bu sayede, test kodumuz daha düzenli ve daha kolay yönetilebilir hale gelir. Ayrıca, POM, testlerin farklı sayfalar arasında geçiş yapmasını kolaylaştırır. Örneğin, Swag Labs’te giriş sayfası, ürün listesi sayfası ve sepet sayfası için ayrı Page Object'ler oluşturarak, test kodumuzun daha modüler ve okunabilir olmasını sağlayabiliriz. POM kullanarak aynı elementlere farklı test senaryolarında tekrar tekrar erişmek yerine, bu elementlere bir kere tanımlayıp, farklı testlerde bu tanımları kullanabiliriz. Bu yaklaşım, kod tekrarını önler ve bakım sürecini kolaylaştırır.

Güvenlik Uyarıları: Dikkat!

Dikkat!

Otomasyon testleri yaparken, şifreleri doğrudan kod içine yazmaktan kaçının. Bunun yerine, güvenli bir şekilde şifre yönetimi stratejisi kullanın (örneğin, ortam değişkenleri veya şifre yönetim araçları). Ayrıca, testlerinizi çalıştırırken, test ortamınızın güvenliğinden emin olun ve sadece test amaçlı kullanılacak bir ortam kullanmaya çalışın.

Öğrenme Yol Haritası

Yeni Başlayan:

  • Selenium ve Pytest kurulumu
  • Basit bir giriş testi yazma
  • Temel Selenium seçicileri öğrenme

Orta Seviye:

  • Daha karmaşık test senaryoları oluşturma
  • WebDriverWait ve diğer bekletme mekanizmaları kullanma
  • Farklı tarayıcılarda test yapma

İleri Seviye:

  • Sayfa Nesne Modeli (POM) uygulaması
  • Test raporlama ve entegrasyonu
  • Paralel test çalıştırma

Sonuç

Bu makalede, Selenium ve Pytest kullanarak Swag Labs uygulamasının otomasyon testlerini nasıl yapacağınızı öğrendiniz. Başlangıç seviyesinden ileri seviyeye kadar adım adım ilerleyerek, farklı test senaryolarını ve teknikleri inceledik. Unutmayın ki, kaliteli otomasyon testleri, yazılım geliştirme sürecinde büyük önem taşır. Daha fazla bilgi için https://fatihsoysal.com inceleyebilirsiniz.

Sıkça Sorulan Sorular

  • Selenium'un diğer test otomasyon araçlarından farkı nedir? Selenium, çoklu dil desteği ve geniş tarayıcı uyumluluğu ile öne çıkar.
  • Pytest'i neden kullanmalıyım? Pytest, kolay kullanımı, güçlü özellikler ve geniş bir topluluk desteği sunar.
  • POM'un avantajları nelerdir? POM, kodun okunabilirliğini, sürdürülebilirliğini ve yeniden kullanılabilirliğini artırır.
  • Test sonuçlarını nasıl raporlayabilirim? Pytest'in kendi raporlama özelliğinin yanı sıra, üçüncü parti raporlama araçları da kullanabilirsiniz.
  • Paralel test çalıştırmanın avantajları nelerdir? Paralel test çalıştırma, test süresini önemli ölçüde kısaltabilir.

Yazar: Fatih Soysal

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Mobil sürümden çık