Selenium Web Otomasyan Testi
Selenium, web uygulamalarını farklı tarayıcılar ve platformlarda test etmek için kullanılan açık kaynaklı ücretsiz bir framework’ dür. Web tarayıcıları üzerinde test otomasyonu yazmanıza olanak sağlar. Test otomasyonu belirli test senaryolarının sürekli olarak program aracılığı ile koşulmasıdır.Böylelikle manual test ihtiyacı azaltılmış olur.
Örneğin web sayfalarının ilk giriş sayfalarını ele alalım. Kullanıcı adı ve şifre alanları ile birlikte Giriş Yap butonunun bulunduğu ekran için bile birden çok test senaryosu mevcuttur.
- Kullanıcı adı ve şifre boş iken siteye giriş yapılabilir mi?
- Kullanıcı adı dolu ve hatalı şifre dolu ve doğru siteye giriş yapabilir mi?
- Kullanıcı adı dolu ve doğru şifre dolu ve doğru siteye giriş yapabilir mi vs.
Bu senaryoları çoğaltmak mümkündür. Bir giriş sayfasında bile birden çok senaryo olduğunu düşünürsek daha karmaşık sayfalarda durum iyice karmaşıklaşacak ve manual test etmek her defasında hem kaynak hem zaman kaybına yol açacaktır. Bunun için selenium gibi test otomasyon araçları ile istediğimiz kadar bu sayfaların testini kısa sürede gerçekleştirebiliriz.
Selenium’da test caselerinin girdilerini ve olması gereken çıktıları belirledikten sonra aynı caselerin sürekli olarak program tarafından koşulmasını isteyebilir ve çıktılarımızı alabiliriz.
Selenium bir çok programlama dili ile yazılabilir bunlardan başlıcaları Java, C#, Python, PHP, JavaScript, Ruby, Perl’dir.
Desteklediği İşletim Sistemleri Windows, MacOS, Linux, Unix ve Desteklediği Tarayıcılar IE, Firefox, Chrome, Opera, Safari’dir.
Selenium sağladığı özelliklere göre 4 başlığa ayrılmaktadır :
- Selenium Integrated Development Environment (IDE)
- Selenium Remote Control (RC)
- Selenium Web Driver
- Selenium Grid (Izgara)
Ben WebDriver üzerinden ilerleyeceğim. Yukarıda bahsettiğim giriş sayfası örneğini kodlar ile gösterelim.
Bir Selenyum Test Otomasyonu için Temel Adımlar
Öncelikle Java JDK ve Intellij IDEA kullanacağım için bunların bilgisayarınızda kurulu olması gerekir.
- Pom.xml içine şu dependency’ler eklenir.
2) https://chromedriver.chromium.org/downloads ChromeDriver son sürümü indirilir. Bulunduğu path aşağıdaki gibi kodun içerisinde belirtilir.
System.setProperty("webdriver.chrome.driver", "src/main/resources/chromedriver_mac64/chromedriver");
3) Web driver objesi oluşturulur.Parametre içermeyen ChromeDriver sınıfı varsayılan Chrome profilinin Java programınız tarafından başlatılacağı anlamına gelir.
WebDriver driver = new ChromeDriver();
4) Test etmek istediğimiz web sayfasının url’ini get metoduyla tanımlıyoruz.
driver.get(baseUrl);
5) Elementleri ilgili sayfada inspect ile id veya css selectorlerini alarak kodda belirtiyoruz. Buradaki örnekte Email alanı için id sinin mat-input-0 olduğunu görüyoruz. Email, password alanları ve Login butonu içinde elementlerini bulup sendKeys metodu ile içlerini doldurmak istediğimiz verileri setliyoruz.
username.sendKeys(“c.cici@gmail.com”);
Bu login sayfası için örnek class şu şekildedir.
public class SeleniumTest {
@Test
public static void login() throws InterruptedException {
System.setProperty("webdriver.chrome.driver", "src/main/resources/chromedriver_mac64/chromedriver");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get("url");
WebElement username = driver.findElement(By.id("mat-input-0"));
WebElement password = driver.findElement(By.id("mat-input-1"));
Thread.sleep(5);
WebElement login = driver.findElement(By.cssSelector("#login-form > form > button"));
username.sendKeys("c.cici@gmail.com");
password.sendKeys("*******");
Thread.sleep(5);
login.click();
Thread.sleep(2000);
System.out.println("Login succesfull - Test passed");
}
@Test anatasyonu ile bu metodun bir test metodu olduğunu belirttikten sonra solda bulunan Run ile bu metodu çalıştırabilir, Seleniumun chrome’u açıp test similasyonunu gerçekleştirmesini izleyebiliriz.
Başka bir yazıda görüşmek üzere. Keyifli okumalar dilerim :)