Selenium Nedir ve Selenium ile Test Otomasyonu

Merhaba arkadaşlar,Mobilhanem.com üzerinde Selenium ile Test Otomasyonu Geliştirme serisine başlangıç yapıyoruz. Selenium ile Test Otomasyonu Geliştirme serimizin bu dersinde Selenium Nedir, Selenium WebDriver ve Selenium IDE hakkında giriş bilgisi vermeye çalışacağız.

Selenium Nedir

Selenium tarayıcı üzerinden otomasyon yazmamıza yardımcı olan bir araçtır. Örneğin bir websiteniz var burada birden fazla butonlar ve fonksiyonlar bulunmakta. Siz bu sitedeki bütün fonksiyonları kendiniz test etmek yerine Selenium ile bir tane otomasyon yapıp webdriver’ın api sayesinde tek tek işlemleri sanal tarayıcı ile izleyip bu fonksiyonların sıkıntı yaratıp yaratmadığını görebilirsiniz. Ayrıca sitenizi sürekli güncelleyebilir yeni özellikler ekleyebilir mevcut olanları çıkarabilirsiniz. Bu işlemler sonunda mevcut fonksiyonlarınızın düzgün çalışıp çalışmadığını bu otomasyon testler sayesinde test edebilirsiniz. Tabiki sadece kendi updateleriniz değil tarayıcı updateleri ile de mevcut fonksiyonlarınızın düzgün çalışıp çalışmadığını bir kere yazdığınız testler ile test edebilirsiniz.

Düşündüğümüz zaman her bir update sonunda uygulamayı baştan sona manuel test etmek ne kadar zor olacak ve çok fazla zamanınızı alacaktır. Ayrıca her bir tarayıcının kendini has özellikleri olduğunu düşündüğümüzde bu testleri farklı farklı tarayıcılarda manuel koşmak tam bir işkence olacaktır. Bu durumun önüne geçmek için Selenium ile testimizi bir kere yazıp farklı zamanlarda farklı tarayıcılarda koşabilir ve test işini Selenium’a bırakabiliriz.

Burada birden fazla test case örnekleri yer almaktadır. Her bir test case için ayrı unit testler yazılmaktadır.Yazılan test caseleri oluşturulurken sırasına önem vermek bizim için oldukça önemlidir. Burada istenilen test case tek başına da koşulabilir ayrıca tamamı da koşulabilir. Tüm test caselerin koşulması bittiğinde bize test başarı oranı çıkmaktadır. Test başarı oranı ne kadar yüksek ise ürün kalitesi de o kadar artacaktır.

Test otomasyonu yazabilmek için tarayıcımıza selenium eklentisini kurmamız gerekiyor.Aynı geliştirmeye bağlı olarak Katalon adlı bir plugin daha bulunmaktadır. İkisi de aynı araçtır fakat Selenium’a gelen son güncellemelerden sonra yapılan aksiyonların kod olarak çıktı verilmesi kaldırılmıştır. Katalon bir çok dilde kod çıktısını bizlere sunabilmektedir. Bu sayede oluşturduğumuz test caselerin kod çıktısını class’ımıza kolaylıkla ekleyip güncelleyebilmekteyiz.

Aşağıdaki resimde Katalon’un hangi dillere kod çıktısını verdiğini görmekteyiz.

Gördüğünüz gibi bir çok dilde kod çıktısı verebilmektedir. Burada Katalon plugini’ni kullanarak test caselerimize @Test annotation altında ki kodları unit test case’mize ekleyeleceğiz. Şimdi Selenium ile ilgili bilmemiz gereken ana bilgilere geçelim.

Selenium’u üç ana başlıkta toplayabiliriz. Bunlar ;

  1. Selenium IDE

  2. Selenium WebDriver

  3. Selenium Grid‘dir.

1.  Selenium IDE

Selenium IDE, Firefox ile beraber çalışan bir eklentidir. Web taracıyıda çalışan bir javascript olarak da düşünülebilir. Web taracıyıcı üzerinden yaptığımız tüm aksiyonları kaydedip çıktısını verir.

2. Selenium WebDriver

Selenium WebDriver bizlere tarayıcı üzerinden tüm aksiyonları yapabilmemizi sağlar. WebDriver sayesinde başlıca front end text kontrolleri, kullanıcı giriş işlemleri, fonksiyonun lokasyon kontrolleri, fonksiyonel işlem kontrolleri, veri kontrolleri, raporlama ve hatanın ekran görüntüsünü alma gibi işlemleri yapabilmekteyiz.

Örneğin test edeceğiniz bir sitenin en alt sayfasında bulunan yorum formunun çalışıp çalışmadığını test etmeniz gerekiyor. Bunun için ilk olarak siteye gireriz ve bir sonraki adımda scroll ile sayfanın en alt kısmında bulunan yorum formunun bulunduğu kısma geliriz.Ama Selenium bize scroll işlemini kod çıktısı olarak verememektedir. Burada WebDriver’ın özgürlükçü yapısı devreye girmektedir. WebDriver elementlerini kullanarak test caselerimizi daha çalışılabilir ve kontrolünü sağlayabilir hale getirebilmemizi sağlıyor.

3. Selenium Grid

Selenium Grid oluşturulan test caselerinin farklı ortamlarda aynı anda koşulmasını sağlamaktadır. Farklı ortamlar dediğimiz aslında işletim sistemi, sunucular vb. gibi örnekler yer almaktadır. Burada çıkan sonuç hangi ortamda daha hızlı sonuç alabileceğimizinde bir göstergesi olmaktadır.

İlk dersimizde basit örnekler ile Selenium’un ne olduğunu ve neler yapılabileceğini anlatmaya çalıştım. Bir sonraki dersimizde Selenium’un kod temellerine giriş yapacağız.

Bu ders serisinin sonunda test otomasyonu geliştirmek için bir alt yapı oluşturmuş olacağız. Aynı zamanda web testlerinin neler olduğu ile ilgili bilgilerde edinmiş olacağız. Buradaki yardımcı pluginler sayesinde yazacağımız unit testlerini daha kolay hale getirip daha iyi bir şekilde optimize edebilmiş hale getirebileceğiz. Aynı test caselerini farklı programlama dillerinde yazıp test case hızını karşılaştırmış olacağız. Karşılaştırma yapılırkende log yazmayı öğrenip LogExpert ya da WinTail gibi araçlardan yapılan işlemleri takip edip çıktılarını görmüş olacağız.

Ders listemizi linkten takip edebilirsiniz.

46

Sevde Aybüke Kaleli

DevOps Engineer at Evam, M.Sc.

12 Yorum

  • Sevde Hanım Merhaba,

    Bu faydalı bilgiler için teşekkür ederim. Benim sormak istediğim selenium ile test case geliştirmek için herhangi bir yazılım dili bilgisi gerekmekte midir? Yoksa sadece selenium un plug-in lerini bilmek yeterli olacak mıdır?

    • Merhabalar, başlangıç seviyesinde bir programlama dili bilmeniz unit test’lerde basit caseler için yeterli olabilir. Ama sonrasında yeterli kalmayacaktır.

  • Merhabalar.java yi yeni bitirdim.ve selenium egitiminize baslamayi dusunuyorum.bu egitimi bitirince seleniumu ogrendim diyebilicekmiyim?tesekkurler…

    • Merhabalar, selenium konusunda bir fikrin oluşacak. Elbette bir eğitim bunun tamamını öğreneceğini ifade etmez ama zemin hazırlar. Burada yapılan örnekleri yaptığında yazıları okuduğunda konu ile ilgili fikrin oluşacağını düşünüyorum. Takıldığın yerde yazarsan yardımcı olmaya çalışırım.

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?