Selenium Api Çalışma Mantığı

Selenium Driver sınıfını tarayıcı veya mobil cihazın testler altındaki durumunu kontrol eden bir alt yapı gibi düşünebiliriz.

wbdrıver2.PNG

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.
webdriver.PNG

Ekran Alıntısı2.PNG

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.

remotewebdriver.PNG

utility sınıfları ile, third party uygulamalar ile bu bu framework’u tasarlayıp geliştirebiliriz.
saucelabsremote.PNG

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

Ekran Alıntısı3.PNG

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

 

Ekran Alıntısı.PNG

Leave a comment

Create a website or blog at WordPress.com

Up ↑