Selenium Webdriver’da Cucumber Kullanımı

Sevilay Ağıl
KoçSistem
Published in
4 min readMay 29, 2019

Bu makalemizle birlikte selenium webdriver’da cucumber kullanarak örnek bir otomasyon projesi oluşturalım.

Projenin github linki:

https://github.com/sevilayagil/SeleniumCucumberExample

Cucumber, düz metin olarak yazılmış senaryolarımızı, otomatize testlere dönüştüren bir test otomasyon aracıdır.

Projemizi oluştururken kodlarımızı tek bir yerden yönetmek için BaseStep mantığını kullanacağım.Senaryolarımızı yazmadan önce projemiz için gerekli ortamları sağlayalım. Öncelikle Intelliji açalım yeni bir maven projesi oluşturalım.

Geliştirme Ortamını Ayarlama

Adım 1:Maven Projesi Oluşturma:(Create Maven Project)

File>New Project>maven project

Proje için bir web sitenin kayıt olma formunu otomatize edelim.

Proje adının açıklamasını yazalım

Pom.xml’e Gerekli Kütüphanelerin Yüklenmesi

Pom.xml dosyasına <dependencies></dependencies> eklenir.

Dependecies içerisine otomasyon boyunca kullanılacak kütüphaneler eklenir.

Projemiz boyunca kullanacağımız kütüphaneleri dependecies blogunun içerisine ekleyebilirsiniz.

Aynı zamanda ihtiyaç olan kütüphaneler için https://mvnrepository.com adresini de ziyaret edebilirsiniz. Yeni bir maven projesi oluşturduktan sonra projemizde kullanmak için gerekli pluginleri ekleyelim.

Adım 2: Plugin Ekleme (Add Cucumber for Java IntelliJ IDEA plugin)

Gereksinimler:

  • cucumber for java
  • gherkin
settings>plugins

Buradan cucumber for java ve gherkin pluginlerini ekliyoruz.

Adım 3: Proje Dizini Oluşturma (Project Directory Structure)

Şimdi sıra geldi projemizin iskelet kısmını oluşturmaya

Src>test> java’nın altına packageler oluşturuyoruz.

Package oluşturma

Kullandığımız packageler Runner,Feature,Base,Steps olarak packegelerimizi oluşturuyoruz.Oluşturduktan sonra görüntümüz şu şekilde olacaktır.

Package iskelet yapısı

Geliştirmeye Başlama (Getting Started with Development)

Adım 1:Feature dosyası oluşturma:

Features>New>File a tıklayıp file name alanına Register.feature yazalım. Burada .feature yazarak dokumanın feature dosyası olduğunu belirtmiş oluyoruz.

Feature dosyası oluşturma

Gherkin söz dizimini kullanarak kayıt olma senaryomuzu yazmaya başlayalım.

Feature dosyasında kayıt olmak için gerekli adımları yazdıktan sonra Alt+enter ile tüm steplerin içeriğini yazmaya başlayalım.

Adım 2: Step Definition Oluşturma (Writing Step Definitions)

Steps paketinin altına yerini belirterek Step adını belirtiyorum.

New Step definition file

Gerekli adımları oluşturtan sonra adımların içeriğini yazmaya başlayabiliriz.

Adım 3: BaseStep oluşturma (Writing Base Step)

Elementlerin aksiyonları belirtirken Base paketimin altında Baseclass’da tanımlamalar yapıp tüm methodlarımı buradan referans alarak çağıracağım.

Öncelikle Base Paketinin altına diğer adımlardaki gibi bir class oluşturarak (Ben adını BaseStep olarak verdim) yapımızı oluşturalım.

Base Step içerisinde Chromdriver exe yolu belirtilirir.(Öncesinde chrome driver exeyi localimize indirmemiz gerekiyor.) Bu aşamada driver tanımlarını yapıyoruz.

Sonrasında enum oluşturarak otomasyon boyunca kullanacağımız elementlerin locaterlarını tanımlıyoruz.

Yine bir enum tanımlayarak timeout sürelerini kategorize ediyoruz. Burası parametrik bir alan burada kullanılan süreler sizin tercihinize göre değişkenlik gösterebilir.

Timeout methodunu tanımlıyoruz. Burada element görünür olana kadar driveri bekletiyoruz.

FindelementClick methodunu tanımlıyoruz.

Yine tüm senaryolarda çağıracağımız findelement methodunu da yazıyoruz.

Sayfayı scrool ederken kullanabileceğimiz javascript methodlarını da tanımlayalım.

Bir de tabiki tüm işlemler bittikten sonra driverı kapatacak bir method da yazalım.

Şimdi tüm baseclass yapımızı kurmuş olduk.

Geri kaldı stepler . Hadi başlayalım :)

Element locator extension kurulumu

Burada sizlere hayat kurtaracak bir şeyden bahsedeceğim.Otomasyona ilk başladığım günlerde elementlerin idsini classlarını vs bulmaya çalışırken sayfada öğeyi denetleme yapıyordum.Fakat sonrasında element locator extensionu buldum.Bunu chrome marketten indirerek işlerimizi hızlandırdım .Epey işe yaradı :)

Element locator extension

Steplerimizin içlerini dolduralım.

Steplerimizi güzelce yazdık . Şimdi runner classımızı oluşturalım.

Adım 4:Runner oluşturma (Writing Test Runner)

Projemizi çalıştırmak için daha önce oluşturduğumuz runner paketine sağ tıklayarak runner classımızı oluşturuyoruz

Runner oluşturma

Adım 5:Rapor oluşturma (Generating Reports)

Runnerda pluginde belirterek üç tip rapor çıktısı oluşturabiliyoruz. Runnerda rapor türlerini belirtikten sonra projemizi çalıştırdığımızda raporların targetin altına geldiğini göreceksiniz.Otomasyonu çalıştırdığımızda raporumuz da aşağıdaki şekilde olacak.

Şimdilik hepsi bu kadar.Bir sonraki yazılarımızda görüşmek dileğiyle:)

--

--