Selenium Driver sınıfını tarayıcı veya mobil cihazın testler altındaki durumunu kontrol eden bir alt yapı gibi düşünebiliriz.
Selenium’u web browserları için bir API olarak düşünebiliriz.
Api testleri: Dış dünyaya açık bir entegrasyonunuz varsa ve microservisler kullanıyorsanız Api testleri gerekir. Burada bir makina diğer makina ile Api seviyesinde konuşuyor.
Tarayıcı veya mobil testlerde dağıtık/paralel ortamlarda, çoklu driverlar ile eşzamanlı çalışmayı destekler.
Tüm test çalışması boyunca kullanılan driver’ın bir örneğini oluşturan kendi kendine yeten bir singleton sınıfıdır.
Bu driver bazı özellik, ayar ve tercihlerle (capabilities, preferences, settings) ile testlerimizi lokalde yada Grid ile uzaktan çalıştırmaya, multithreading desteği ile çoklu koşumları yapmayı sağlar.
utility sınıfları ile, third party uygulamalar ile bu bu framework’u tasarlayıp geliştirebiliriz.
Webdriver API
Bu bir api standadır. Farklı driverlarda çalışarak, farklı dilleri kullanmamıza destek oluyor. (csharp, java, python,ruby..) Ayrıca Driver’dan dönen cevap da bu api sayesinde kodumuza geliyor. ( ie,firefox,chrome.. )
Basit olarak kodumuzda C# kullanıyor olalım ve selenium kullanarak, ie driver’ı dinlesin , istekte bulunsun ve cevabı tekrar alsın. Akış aşağıdaki gibi olur:
Binding code -> webdriver wire protokol -> ie driver server
Kodumuz bu protokolü kullanarak “peer request” oluyor.
IE browser, Selenium server’ı dinliyor , Local makina da porttan Selenium’u dinleme yapıyor. Böylece Selenium server ile uzaktan test çalıştırma yaparken
Testlerimiz selenium server’a gidiyor, selenium server driver’lar üzerinden browserlarda testleri koşuyor
Leave a comment