Müşterilerimiz İletişim EN

Selenium ile Testleri Otomatikleştirme

   
Selenium

Selenium, testleri otomatikleştiren bir test aracıdır. Selenium test betikleri oluşturmak için Java, C#, Python vb. gibi birden çok programlama dilini kullanabilirsiniz. Ve ayrıca Firefox eklentisi olan Selenium-IDE ile test yazım dillerini öğrenmeden kolayca testinizi otomatik hale getirebilirsiniz.

 

Test otomasyonu;

 
  • Regresyon testlerini destekler.
  • Geliştiriciler için hızlı geri bildirim sağlar.
  • Test durumlarını tekrarlamayı sağlar.
 

Selenium’u birden fazla tarayıcıda yeniden çalıştırmak için Javascript kütüphanesi geliştirildi. Bunun sonucunda Selenium IDE ve Selenium RC (Remote Control)’nin temeli olan Selenium Core meydana geldi. Tarayıcıların Javascript için güvenlik kısıtlamaları Selenium için bazı durumları imkansız hale getirdi. Bunun için de WebDriver geliştirildi.

 

Selenium Araçları;

  • Selenium IDE: Test komutlarını oluşturmak için kullanılan Firefox eklentisi olan bir araçtır. Selenium IDE kullanarak test durumları kaydedilerek yürütülür ve böylece yeniden kullanılabilir test komutları ortaya çıkar.
  • Selenium RC: Birden fazla testin sürekli olarak yapılmasını sağlar. Bir Selenium RC sunucusu ile çalışır.
  • Selenium Grid: Selenium RC’ye benzer şekilde birden fazla sunucu ile çalışabilir. Paralellik ön plandadır. Yani aynı anda farklı testler farklı uzak makinelerde çalıştırılabilir.
  • Selenium WebDriver: Selenium RC’nin yöntemi olarak Javascript fonksiyonlarını tarayıcıya göndermez.

Örnek olarak Python’da webdriver kullanarak küçük bir test yazalım. Öncelikle Python için selenium modülünü kurmak gerekir. Uygulamamız Kartaca’nın Türkçe web sayfasını açsın ve başlık (title) bilgisini kontrol etsin.


import unittest
from selenium import webdriver
class FFKartacaTest(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Firefox()
    def test_baslik(self): 
        self.driver.get("http://www.kartaca.com/TR/anasayfa")
        self.assertIn("Kartaca - Anasayfa", driver.title)
    def tearDown(self):
        self.driver.close()
if __name__ == "__main__":
    unittest.main()

Tanımladığımız sınıfın içerisine birden fazla test yazabiliyoruz. Yazılan testler alfabetik sırayla (metodun ismine göre) çalışıyor ve her çalışan testin ardından tearDown metodu otomatik çağrılıyor. Programın tarayıcıda etkileşimde olacağı elemanları bulurken Firefox’un Firepath ve Firebug araçlarından yararlanılabilir. Elemanlar sınıf ismine göre (find_element_by_class_name), yazılan css’e göre (find_element_by_css_selector) ve elemanın id’sine göre (find_element_by_id) bulunabilir. Bu elemanlar form ögesi veya bir menü olabilir. Webdriver’ın metotlarını kullanarak formları doldurabilir ve sayfalardaki bağlantılara tıklayarak gezinebiliriz.


Yazan: Kartaca