Test adımları için java, ruby, python
gibi farklı yazılım dilleri kullanılabilir.
Test adımlarını web üzerinden
görebilmek için selenium-ide kullanılır.Selenium ide fırefox için
geliştirilmiş bir eklentidir.
Seleniumda firefoxdaki haraketlerimizi
kayıt edebilir ve sonraki ürettiğimiz test kodlarını otomotik
testler için kullanabiliriz.
Şimdi 4 adımda bir senaryo düşünelim. www.sahibinden.com adresine girdik
1- siteyi açtım
2- arama kısmına tıkladım, telefon
yazdım, aradım
3- ilk çıkan sonuca tıkladım
4- ilan no : 3123123 tarzı bişey
yazıyo mu onu kontrol ettim
Diyelim ki sahibinden.com'da çalışıyoruz,
kod yazdık, aramayı güçlendiriyoruz.
Kodumuzdan öyle eminiz ki, ya da arama
kısmıyla beraber ürünle ilgili de bi kod yazıyoruz, en ucra köşede bir kod, evet
kodumuz çalışıyor. Ama,
ya aramayı bozmuşsa? Ya aralarında
bağ varsa? Ya ilan numarası gelmiyorsa? Sırf o yazdığımız
küçük kod yüzünden? Bunlar olabilir..
Tester larımız vardır, click
clickçiler, şu yukarıdaki senaryomuzu ona veririz, ve her bir
güncellemede, bunları test eder. Sen de doğrularsın kodun,
aramayı bozmamış. Bunun gibi 100lerce senaryo düşünürsek;
mesaj göndersin, paylaşsın,
yazdırsın, favorilere eklesin vs..
peki hep click clickçilerle mi
uğraşçaz? Bi ton para, + insan, yanılabilir. İşte bu aşamada ,automated ui tests devreye giriyor..
Şimdi, Selenium kendini burada gösteriyor kendi içinde, “tıkla” , “aç”,
“doğrula”, “yaz” gibi automated test için çok kullanılan
fonksiyonlara sahip.
Biz de onu kullanarak, senaryoyu
yazarız. Ve RUN! dediğimiz an , kendine kendine bizim senaryomuzu çalıştırır,
ve bize, evet çalıştırdım, düzgün çalışıyor yada eğer
bozuksa hata var! gibi çıktılar verir.
Biz her güncelleme
yaptığımızda , sadece RUN! diyerek bu testimizi çalıştırabiliriz bu sayede.
Burada Selenium-İde görüntüsü yer almakta ve aşağıda da açıklanmakta.
Selenium'da;
Selenium'da;
1-Dosya seçeneği, yeni veya önceden açılmış test case açmaya , kaydetmeye,yarar.
2-Düzenle seçeneği,
kontrol işlemlerini yapar (kes,yapıstır, geri al gibi).
3-Options seçeneği, ide ile alakalı ayarlar yapılır, varsayılan ide
dili değiştirilir.
3.1-Options>Options seçeneği,
karakter kodlaması ve “*waıt” komutu
için milisaniye cinsinden sürenin belirlenmesi bu kısımda
yapılır.Varsayılan bekleme süresi 30 sn .ayrıca bu bölümde
kişisel java scriptler yüklenebilir.
3.2-Options>Format seçeneği, html
dilindeki scriptleri başka dile çevirmeye yarar.
3.3-Options >Clipboard format seçeneği;
hızlı şekilde mevcut diğer dillere çevirme işlemini yapar.
*Base URL, test yapılmak istenen url
adresi bu bölüme yazılır. Eğer kayıtlı bir test case varsa test
case çalıştırıldığında bu url otomatık olarak gelir.
*Fast & slow, bu kısımda testin
hızı ayarlanır. Hız göstergesi
ile 1 ile 10 arasındadır. Testin varsayılan hızı 10 dur.
*Play all, tüm test caseleri
çalıştırmak için kullanılır.
*Play, üzerinde çalışılan test case
çalıştırır.
*Pause, çalıştırılmış bir test
case bekletir.
*Step, bekletilmiş bir test case adım
adım ilerletir.
*Test runner, selenium kodunu, test case ve test yapılan siteyi gösterir.
*Record, testi kaydetmek ve testi
durdurmak için kullanılır. Selenium-ide ilk başlatıldığında
kayıt otomatik başlar.
~Log: testin çalıştırılması ile
hatalı ve başarılı işlemlerin kaydını tutar.
~Reference: Komutların açıklanmasını
gösterir. Komutların nasıl kullanılacağı burada anlatılmaktadır.
Selenium Nasıl Çalışır?
1-Command: Test için senaryomuzdaki komutları girdiğimiz yer.Bazı komutlar;
Open: Verilern URL'ye(siteye) ait web sayfasını açmak için
Click: Bir nesneyi tıklamak için
ClickAndWait: Nesneye tıklattıktan
sonra sayfanın yüklenmesini beklemek için
AssertElementPresent: Belirtilen
elemanın yüklenemesini beklemek için
AssertTextPresent: Belirtilen bir metnin
sayfada olup olmadığını kontrol eder.
WaitForPageToload: sayfanın
yüklenmesini bekler.
WaitForElementPresent: Sayfadaki beklenen arayüz ekrana gelene kadar testi bekletir.
Type:bir inputun içine yazmak için
kullanılır.
VerifyTextPresent: Sayfanın herhangi bir yerinde beklenen yazının varlığını doğrular.
VerifyElementPresent: Sayfada olması beklenen arayüzün doğru yerde olup olmadığını kontrol eder.
Title/AsertTitle: Beklenen sayfa başlağını doğrular.
DeleteCookie: Belirtilen cookinin
silinmesi sağlar.
MouseOver: Mouse belirtilen elemanın
üzerine götürür.
2-Target: Commanda belirttiğimiz
olayın hangi nesne üzerinde gerçekleşeceğini belirtiriz. Burada
CSS Locator yada Xpath gibi yer bulucular kullanmamız gerekmekte.
3-Value: Targette belirttiğimiz
nesnenin bir değeri varsa ve o değeri belirtmemiz gerekiyorsa yada
sitede bir yere değer yazmak gerekiyorsa kullanılır.
Şimdi elimizde 1 tane senaryomuz olsun
Scenario 1: cikti.al home page
1- Open page(http://cikti.al)
2- Verify the page header('Çıktı Al
! Bulut Flash Bellek(
(beta))
burada (http://cikti.al) adresine gidip Çıktı Al ! Bulut Flash Bellek( (beta))
burada (http://cikti.al) adresine gidip Çıktı Al ! Bulut Flash Bellek( (beta))
yazısının sayfada olup olmadığının kontrolünü yaparız.Seleniumu çalıştırdığımız anda bize tarayıcımızdan yeni bir sekme açarak
http://cikti.al adresine gider.
Burada istediğimiz adrese gitti. Çıktı Al ! Bulut Flash Bellek yazımızı
kontrol etti evet böyle bir metin var ve her şey yolunda dedi bize.
Peki ,bu Bulut Flaş bellek sitemiz ne işe yarıyor? Herhangi bir
dökümanımızı yükleyip ,daha sonra istediğimiz bir yerde çıktısını
almamızı sağlıyor, harici bellek kullanmadan hallediyoruz çıktı alma
olayını ,site kendi hafızasında saklıyor bu dökümanı. Peki o zaman bizde
bir dosya yükleyelim Seleniuma komutları verelim o bizim için yüklesin
ve baksın sitemizin dosya yükle butonu gerçekten çalışıyor mu bir sorunu
var mı ?
Seleniuma gireceğimiz komutlar bu şekildedir. Seleniuma Run komutunu verdiğimiz anda yeni sekmede http://cikti.al adresine gitti yazımızı kontrol etti ve commanda kısmına yazdığımız type komutu ile target kısmına yazdığımız CSS Locator yer bulucusu ile dosya yüklemesi gereken yeri bulmasını söyledik ve value kısmına yüklenecek dosyamızın adını verdik.
Dosyamız yüklendi! Sitemizde hiç bir sorun olmadığını test ederek gördük.
Sizlerde Seleniumu çeşitli siteleri test etmek amaçlı kullanabilirsiniz hatta bunu farklı browserlarda deneyebilir hatta ve hatta farklı işletim sistemleri için bile test edebilir hale getirebilirsiniz.
Seleniuma gireceğimiz komutlar bu şekildedir. Seleniuma Run komutunu verdiğimiz anda yeni sekmede http://cikti.al adresine gitti yazımızı kontrol etti ve commanda kısmına yazdığımız type komutu ile target kısmına yazdığımız CSS Locator yer bulucusu ile dosya yüklemesi gereken yeri bulmasını söyledik ve value kısmına yüklenecek dosyamızın adını verdik.
Dosyamız yüklendi! Sitemizde hiç bir sorun olmadığını test ederek gördük.
Sizlerde Seleniumu çeşitli siteleri test etmek amaçlı kullanabilirsiniz hatta bunu farklı browserlarda deneyebilir hatta ve hatta farklı işletim sistemleri için bile test edebilir hale getirebilirsiniz.
http://www.browserstack.com bu adres ile testlerinizi farklı web tarayıcılarında deneyebilirsiniz. Örneğin
tekrar www.sahibinden.com dan tekrar bahsedersek ve buradaki bir
ürünümüzü tam müşterinin biri 1500 dolarlık
ürün alırken, İnternet explorer8 de göremediğimiz, ödemeyi
onayla butonu , çalışmazsa ne olacak? Ve bizden önce bunu müşteri görmüş
olsa, biz 1500 doları ve müşterizi kaybetsek, ne
kötü olur değil mi? İşte bu gibi durumlara sebebiyet vermemek için
testimizi farklı tarayıcılar ve farklı işletim sistemleri içinde
kullanıma hazır hale getirebiliriz.
Yazıma burada son veriyorum Selenium hakkında bişeyler katabilmişsem ne mutlu :)