web application testing

25
Web Application Testing with Selenium Tool Yıldız Teknik Üniversitesi Ömer Faruk İNCE 14501008 Yazılım Kalitesi ve Test Teknikleri 24/12/2015

Upload: oemer-faruk-ince

Post on 15-Apr-2017

411 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 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

Page 2: Web Application Testing

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/

Page 3: Web Application Testing

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

Page 4: Web Application Testing

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).

Page 5: Web Application Testing

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)

Page 6: Web Application Testing

Selenium IDE’yi Yakından Tanıyalım

Page 7: Web Application Testing

Selenium IDE’yi Yakından Tanıyalım

Page 8: Web Application Testing

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.

Page 9: Web Application Testing

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.

Page 10: Web Application Testing

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.

Page 11: Web Application Testing

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.

Page 12: Web Application Testing

Selenium Örnek Test Case 1: • Bu işlemleri Selenium Ide ile kayıt ettiğimizde bize

aşağıdaki kodu oluşturacaktır:

Page 13: Web Application Testing

Selenium Örnek Test Case 1:• Bu işlemleri Selenium Ide ile kayıt ettiğimizde bize

aşağıdaki kodu oluşturacaktır:

Page 14: Web Application Testing

Selenium Örnek Test Case 2:• THY sitesi için SearchFlight test senaryo gerçeklemesini

test edelim.

Page 15: Web Application Testing

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.

Page 16: Web Application Testing

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.

Page 17: Web Application Testing

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.

Page 18: Web Application Testing

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");

    }}

Page 19: Web Application Testing

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.

Page 20: Web Application Testing

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.

Page 21: Web Application Testing

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. }

}

Page 22: Web Application Testing

2) Selenium WebDriver Daha sonra projeye testlerin yazılacağı bir Class ekleriz. Solution

Explorer içindeki ilk_test satırının üzerinde; 

Page 23: Web Application Testing

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.

Page 24: Web Application Testing

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.

Page 25: Web Application Testing

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