Download - Web Application Testing
Web Application Testingwith Selenium Tool
Yıldız Teknik ÜniversitesiÖmer Faruk İNCE
14501008Yazılım Kalitesi ve Test Teknikleri
24/12/2015
Selenium Nedir?Selenium web tabanlı uygulamaların testlerini browser/tarayıcı üzerinden
yapmamızı sağlayan ve tüm web testlerinin yapılabileceği bir test aracıdır.Selenium’un desteklediği programlama dillerinden bazıları:
Java C# Perl Groovy PHP Python Ruby .Net
Açık kaynaklı (open source) bir yazılımdır.http://www.openqa.org/
Selenium Nedir ?Selenium’un çalışabildiği işletim sistemi türleri:
WindowsLinuxMac OS işletim sistemlerinde çalışabilmektedir.
Selenium BileşenleriSelenium’u üç ana başlıkta inceleyeceğiz.
Selenium IDESelenium WebDriverSelenium-Grid
1) Selenium IDESelenium IDE, geliştirdiğimiz web tabanlı uygulamaların test
edilmesini sağlayan ve bunları daha sonrasında otomatize ederek
browser üzerinde aynı caseleri tekrar tekrar girmeden kontrol
etmemizi sağlayan araçtır.Selenium IDE’nin başlıca özellikleri;
1. Normal bir kullanıcı gibi davranıp işlemler kullanıcıymış gibi yapılabilir ve kaydedilebilir.
2. Fonksiyonel testler yazmak için kullanılmaktadır.
3. Bir çok dil desteği mevcut (Java, .NET, Python, Ruby, PHP,Perl).
1) Selenium IDESelenium IDE’nin başlıca özellikleri;
1. Normal bir kullanıcı gibi davranıp işlemler kullanıcıymış gibi yapılabilir ve kaydedilebilir.
2. Fonksiyonel testler yazmak için kullanılmaktadır.
3. Firefox plug-in’i olarak çalışmaktadır.
4. Bir çok dil desteği mevcut (Java, .NET, Python, Ruby, PHP,Perl).
5. Selenium’un open source olması sayesinde bir çok platformda (Windows, Linux, IOS) herhangi bir sorun yaşamadan çalışmaktadır.
6. Bir çok dil desteği ve platform desteği sayesinde diğer test araçlarına göre daha çok tercih edilmektedir. (UFT, QTP)
Selenium IDE’yi Yakından Tanıyalım
Selenium IDE’yi Yakından Tanıyalım
Selenium IDE Özellikleri: Menüler: Menü kısmında yeni test
oluşturmak, yapılan testleri kaydetmek ve istediğiniz testi, istediğimiz dilde export ederek kullanabiliriz. Bu özelliklerin hepsini yapacağınız testlerde kullanabilirsiniz.
Table: Adım adım yapılan işlemlerin tutulduğu bölümdür.
Source: Table’da bulunan değerlerin HTML kodudur.
Play: Kaydedilen adımların otomatize edilip tekrardan aynı test caselerini girmeden çalıştırıldığı bölümdür.
Test Case: Yapılan testlerin isimlendirerek saklandığı bölümdür.
Command: Çalıştırılan uygulamanın test caselerine uygun alanların doldurularak işleme devam edildiği yerdir.
Selenium IDE Özellikleri: En çok kullanılan komutlar aşağıdaki gibidir. open: URL’i ( Siteyi/adresi ) açmak içindir. click: Bir nesneye tıklamak içindir. clickandWait: Nesneye tıkladıktan sonra sayfanın yüklenmesini bekler. assertElementPresent: Belirtilen elemanın yüklenmesini bekler. assertTextPresent: Belirtilen bir text’in(yazının) sayfada olup olmadığını kontrol
eder. deleteCookie: Belirtilen Cookie’nin silinmesi sağlar. mouseOver: Mouse’u belirtilen elementin üzerine götürür. verifyTextPresent: Belirtilen nesnenin belirmesini bekler ve sağlamasını yapar. waitForPageToLoad: Sayfanın yüklenmesini bekler. captureEntirePageScreenshot: Üzerinde test yaptığımız sayfanın ekran görüntüsünü
çerçevesiz olarak kaydeder. waitForElementPresent: Sayfadaki bir elementin yüklenmesini bekler, bunu
genellikle JavaScript tarafından kontrol edilen elementler için kullanırız. type: Bir input’un içine yazmak için kullanılır.
Selenium IDE Özellikleri:
Log: Adım adım yapılan testlerin loglarının bulunduğu kısımdır. Play ile çalıştırılarak yapılan testler hakkında hata mesajlarının görüntülendiği kısımdır. Bu sayede yaptığınız testleri bir nevi debug etmiş olursunuz.
Reference: Command kısmında kullanılan kodların dökümante edildiği kısımdır. Bu sayede yaptığınız testleri dökümante ederken size kolay sağlayarak işlemlerinizi hızlı bir şekilde yapabilirsiniz.
Base URL: Testlerin hangi sayfada yapılacağını gösteren kısımdır.
Target: Ekranda test edilmek istenen alanın belirtildiği kısımdır.
Value: Yapılan istenen test için değerin girildiği alandır. Runs & Failures: Testlerin kaç tanesinin başarılı, kaç
tanesinin başarısız olduğunun listelendiği kısımdır. Record: Kayıt tutmak için kullanılan buton.
Selenium Örnek Test Case 1:
• Anasayfa’dan login olma sayfasına git.• Login olma ekranında kullanıcı adını gir.• Login olma ekranında şifreyi gir.• Submit butonuna bas.• “Bana Özel” sayfasına yönlenip yönlenmediğini kontrol et.• “Adres Bilgilerim”e tıkla.• Çıkan sayfada Güncelle’ye tıkla.• TC Kimlik Noyu 11111111111 olarak değiştir.• Kaydet butonuna tıkla.• “Lütfen T.C. Kimlik Numaranızı Doğru Olarak Giriniz.” hata
mesajının sayfada yer alıp almadığını kontrol et.
Selenium Örnek Test Case 1: • Bu işlemleri Selenium Ide ile kayıt ettiğimizde bize
aşağıdaki kodu oluşturacaktır:
Selenium Örnek Test Case 1:• Bu işlemleri Selenium Ide ile kayıt ettiğimizde bize
aşağıdaki kodu oluşturacaktır:
Selenium Örnek Test Case 2:• THY sitesi için SearchFlight test senaryo gerçeklemesini
test edelim.
Selenium Örnek Test Case 2:• Bütün kontrolleri geçerek bizim için örnek test senaryosunu başarıyla
gerçekleştirdi. Beklenen değerlerin kontrolleri hatasız bir şekilde gerçekleştirildi.
2) Selenium WebDriverSelenium WebDriver’ın eklenmesinden sonra Selenium 2.0
olarak yayınlandı. WebDriver, Selenium’un kendi içinde geliştirmiş olduğu en önemli özelliklerinden biri diyebiliriz. Çünkü WebDriver, test yapan kişilerin isteklerine göre browserın kendi metodlarını kullanarak işlem yapabilir.
WebDriver bir çok browserda çalışmaktadır. (Firefox, Chrome, Opera, Safari, Internet Explorer vs..) Bu durum test uzmanları için güzel bir özellik olup, browserların davranışlarını daha yakından görerek müdahele etmelerine olanak sağlar.
2) Selenium WebDriverWebDriver’ın geliştirilmesindeki en büyük amaç dinamik web
sitelerinin içeriklerinin belli bir kısmının değişimi sırasında tüm sayfanın tekrardan yüklenmeden yapılan değişiklikleri görerek test caselerinin devam ettirilmesine yardımcı olmaktır.
Selenium WebDriver sayesinde yapmış olduğumuz projenin testi için kullanmamız gereken tek şey WebDriver API’ı indirmektir. API sayesinde projenizin diline göre Java, .NET, Python, Ruby, PHP, Perl gibi dillerini kullanarak test scriptlerinizi yazılabilir. Bu araç daha çok developerlara yöneliktir.
2) Selenium WebDriver
Sistemimizde Java JDK kurulu olmalıdır. Eclipse kurulu olmalıdır. Selenium Java Client download edilir. Jar dosyasi extract edilir. Eclipse java projesi oluşturulur. Jar dosyalari proje ye import edilir. Test class i oluşturulur.
package test;
import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;
public class TestClass { public static void main(String[] args) { //Here we initialize the firefox webdriver WebDriver firefoxDriver=new FirefoxDriver(); //Open the url which we want in firefox firefoxDriver.get("Http://www.google.com");
}}
2) Selenium WebDriver Selenium c# client bilgisayarımıza indirip oluşturacağımız bir klasörün içerisine
çıkartıyoruz. nunitframework.dll bilgisayarımıza indiriyoruz.
2) Selenium WebDriver Selenium c# client bilgisayarımıza indirip oluşturacağımız bir klasörün içerisine
çıkartıyoruz. nunitframework.dll bilgisayarımıza indiriyoruz.
2) Selenium WebDriver Daha sonra projeye testlerin yazılacağı bir Class ekleriz. Solution
Explorer eklediğimiz classın içerisine;
using System;using System.Collections.Generic;using System.Linq;using System.Text;using OpenQA.Selenium;using OpenQA.Selenium.Firefox; //Firefox'u kullanmamızı sağlayan
namespaceusing NUnit.Framework;
[TestFixture()]public class SeleniumTestSuite{ [SetUp] public void RunTest() { //Yapılacak testler yazılır. }
}
2) Selenium WebDriver Daha sonra projeye testlerin yazılacağı bir Class ekleriz. Solution
Explorer içindeki ilk_test satırının üzerinde;
3) Selenium-GridSelenium’un geliştirmiş olduğu ve geliştirmesi devam eden Selenium-Grid
farklı sunucular üzerinde farklı browserlar ile paralel bir şekilde
çalıştırmaktadır. Buradaki asıl amaç farklı işletim sistemi, donanım, cihaz gibi
kombinasyonlar üzerinde test sonuçlarını görmek, dağıtık ortamda paralel
olarak test süreçlerini yürütmek ve test sonuçlarını hızlıca almaktır. Bu
testler paralel olarak çalıştığında süre olarak ciddi bir zaman kazancı
gözükmektedir.
Selenium Hub ve Node yapısını kullanarak testlerini yapmaktadır.
Geliştirilmeye devam edilmektedir.
Sonuçlar:Büyük çapta web projelerinde milyonlarca sayfa içerdiğinden test maliyeti
kritik önem içermektedir. Test otomasyon araçları bu kapsamda
değerlendirildiğinde çok önemli yer teşkil etmektedir.
Selenium test otomasyon aracı kullanıcılara tarayıcı ve işletim sistemi
farketmeksizin tüm platform/tarayıcılarda test etme imkanı sunduğundan
zaman ve iş gücü maliyetini önemli ölçüde azaltmaktadır.
Kullanıcıların çok sayıda giriş yapmaları gerken durumlarda kullanım
kolaylığı sağlayarak zamandan çok büyük ölçüde tasarruf ve test kolaylığı
sağlamaktadır.
Çeşitli test senaryolarını çok kısa süre içerisinde otomatik bir şekilde test
edebilme imkanı sağlamaktadır.
ReferanslarKaur H., Gagan G., “Comparative Study of Automated Testing Tools:
Selenium, Quick Test Professional and Testcomplete”, 2013, ISSN:22489622, Volume 3, Issue 5, 1739 - 1743
http://www.seleniumhq.org/
https://en.wikipedia.org/wiki/Selenium_software
https://en.wikipedia.org/wiki/Web_testing