Selenium WebDriver da Page Object Model (POM) Kullanımı (Java)

2
3.122
Görüntüleme

Merhaba arkadaşlar;

Bu makalemde de Selenium WebDriver da önemli bir konu olan, Page Object Model (POM) hakkında yazacağım. Evet Page Object Model nedir sorusunu öncelikle cevaplayalım. Page Object Model: Yazılan test caselerde kodun tekrarını azaltmak için kullanılan bir model türüdür. Kodun bakımını ve okunabilirliğini kolaylaştırır. Proje için oluşturulan yüzlerce test casede herhangi bir değişiklik olduğu takdirde (element id değiştirildiğinde, element in yeri değiştirildiğinde veya element kaldırıldığında vs), her bir test casei güncellemek yerine object class değiştirilecek ve bu sayede değiştirilmesi gereken test caseler toplu olarak güncellenmiş olacak.

 

Test olarak yemeksepeti.com da dil değiştirip, headerı kontrol edeceğim ve senaryoyu yazarken POM & JAVA & TestNG kullanacağız.

Öncelikle BaseClass ımızı oluşturalım. BaseClass ı bütün test caselerde driver başlatmak ve kapatmak için kullanacağız.

 

Evet şimdi testimizde kullanacağımız objeleri ve komutları tanımlamak için de bir class oluşturalım. Bu classın adı da HomePage olsun.

Class’ın altına,

By ElementName1 = By.cssSelector(”ElementCssSelectorLocation”); 

By ElementName2 = By.cssSelector(”ElementCssSelectorLocation”); 

şeklinde elementlerimi tanımlıyorum. Daha sonra test casede yazılacak komutlar için methodlar oluşturuyorum.

 

Şimdi testimizi yazmaya başlayabiliriz. Yeni bir class oluşturuyorum ve classın adını ChangeLanguageVerifyHeader yapıyorum.

İşte burada yukarıda oluşturduğumuz BaseClass ı kullanacağız,  class nameden sonra extends BaseClass yazarak, BaseClass daki tüm methodları kullanacağız.

HomePage class daki ‘assertHeaderMessage‘ methodu yukarıda ki kod daki 24 ve 42. satırda kullanmış oldum. Örneğin siteye 3. bir dil eklendi ve buradaki headera farklı bir metin daha eklendi. Yeni yazacağım test casede yine HomePage deki ‘assertHeaderMessage‘ methodu çağıracağım. Böylelikle her test case için aynı methodu kullandığım için sitede yapılan herhangi bir değişiklikte, methodu güncellediğimde, alakalı olan test caseler de güncellenmiş olacak.

 

Bu da testng.xml dosyası.

Test Sonucu 🙂

 

Bu makalede bana yardımcı olan Nahide Ergün‘e katkılarından dolayı teşekkür ediyorum 🙂

2 YORUMLAR

CEVAP VER

Yanlış bir e-posta adresi girdiniz!
Lütfen adınızı buraya girin Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.