Selenium WebDriver nedir? RC ile Fark

İçindekiler:

Anonim

Selenium Webdriver nedir?

Selenium Webdriver , web uygulamalarını test etmek için kullanılan açık kaynaklı bir API koleksiyonudur. Selenium Webdriver aracı, beklendiği gibi çalışıp çalışmadığını doğrulamak için web uygulaması testini otomatikleştirmek için kullanılır. Esas olarak Firefox, Chrome, Safari ve Internet Explorer gibi tarayıcıları destekler. Ayrıca, tarayıcılar arası test yapmanıza da izin verir.

WebDriver ayrıca test komut dosyalarınızı oluştururken bir programlama dili kullanmanızı sağlar (Selenium IDE'de mümkün değildir).

Artık if-then-else veya switch-case gibi koşullu işlemleri kullanabilirsiniz . Ayrıca do-while gibi döngü gerçekleştirebilirsiniz.

Aşağıdaki programlama dilleri WebDriver tarafından desteklenmektedir

  • Java
  • .Ağ
  • PHP
  • Python
  • Perl
  • Yakut

Hepsini bilmenize gerek yok. Sadece birinde bilgili olmanız gerekiyor. Ancak, bu eğitimde, IDE'miz olarak Eclipse ile Java kullanacağız.

Selenium RC ve Webdriver arasındaki fark

2006'da WebDriver'ın ortaya çıkmasından önce, Selenium Remote Control adında başka bir otomasyon aracı vardı. Hem WebDriver hem de Selenium RC aşağıdaki özelliklere sahiptir:

  • Her ikisi de test komut dosyalarınızı tasarlarken bir programlama dili kullanmanıza izin verir .
  • Her ikisi de testlerinizi farklı tarayıcılarda çalıştırmanıza izin verir .

Peki nasıl farklılar? Cevapları tartışalım.

1. Mimari

WebDriver'ın mimarisi Selenium RC'lerden daha basittir .

  • Tarayıcıyı işletim sistemi seviyesinden kontrol eder
  • İhtiyacınız olan tek şey, programlama dilinizin IDE'si (Selenium komutlarınızı içeren) ve bir tarayıcıdır.
Selenium RC'nin mimarisi çok daha karmaşık.
  • Teste başlamadan önce Selenium Remote Control (RC) Server adlı ayrı bir uygulama başlatmanız gerekir.
  • Selenium RC Sunucusu , Selenium komutlarınız ve tarayıcınız arasında bir "aracı" görevi görür.
  • Test etmeye başladığınızda, Selenium RC Server , tarayıcıya Selenium Core adlı bir Javascript programını "enjekte eder" .
  • Selenium Core enjekte edildikten sonra RC Sunucusu tarafından test programınızdan aktarılan talimatları almaya başlayacaktır.
  • Talimatlar alındığında, Selenium Core bunları Javascript komutları olarak çalıştıracaktır.
  • Tarayıcı, Selenium Core'un talimatlarına uyacak ve yanıtını RC Sunucusuna iletecektir.
  • RC Sunucusu tarayıcının yanıtını alacak ve ardından sonuçları size gösterecektir.
  • RC Server, tüm döngüyü tekrarlamak için test betiğinizden bir sonraki talimatı alır.

2. Hız

WebDriver, doğrudan tarayıcıyla konuştuğu için Selenium RC'den daha hızlıdır çünkü onu kontrol etmek için tarayıcının kendi motorunu kullanır.

Selenium RC, Selenium Core adlı bir Javascript programı kullandığından daha yavaştır . Bu Selenium Core, siz değil, tarayıcıyı doğrudan kontrol edendir.

3. Gerçek Hayat Etkileşimi

WebDriver, sayfa öğeleriyle daha gerçekçi bir şekilde etkileşim kurar. Örneğin, test ettiğiniz bir sayfada devre dışı bırakılmış bir metin kutunuz varsa, WebDriver gerçekten de gerçek bir kişinin yapamayacağı gibi ona herhangi bir değer giremez.

Selenium Core, diğer JavaScript kodları gibi, devre dışı bırakılmış öğelere erişebilir. Geçmişte Selenium test uzmanları, Selenium Core'un testlerinde devre dışı bırakılmış bir metin kutusuna değerler girebildiğinden şikayet ediyordu. API'deki farklılıklar

4. API

Selenium RC'nin API'si daha olgunlaşmıştır ancak fazlalıklar ve genellikle kafa karıştırıcı komutlar içerir . Örneğin, çoğu zaman sınayıcılar tür veya tür Anahtarları kullanıp kullanmamaları konusunda kafa karışıklığı yaşarlar; veya click, mouseDown veya mouseDownAt kullanılıp kullanılmayacağı. Daha kötüsü, farklı tarayıcılar bu komutların her birini farklı şekillerde yorumlar!

WebDriver'ın API'si Selenium RC'lerden daha basittir . Gereksiz ve kafa karıştırıcı komutlar içermez.

5. Tarayıcı Desteği

WebDriver, başsız HtmlUnit tarayıcısını destekleyebilir

HtmlUnit, görünmez bir tarayıcı olduğu için "başsız" olarak adlandırılır - GUI'sizdir.

Çok hızlı bir tarayıcıdır çünkü sayfa öğelerinin yüklenmesini beklemek için zaman harcanmaz. Bu, test yürütme döngülerinizi hızlandırır.

Kullanıcıya görünmez olduğu için sadece otomatik yollarla kontrol edilebilir.

Selenium RC, başsız HtmlUnit tarayıcısını destekleyemez. Çalışmak için gerçek, görünür bir tarayıcıya ihtiyacı var.

WebDriver'ın Sınırlamaları

WebDriver Yeni Tarayıcıları Kolayca Destekleyemez

WebDriver'ın işletim sistemi düzeyinde çalıştığını unutmayın. Ayrıca, farklı tarayıcıların işletim sistemi ile farklı şekillerde iletişim kurduğunu unutmayın. Yeni bir tarayıcı çıkarsa, diğer tarayıcılara kıyasla işletim sistemi ile farklı bir iletişim sürecine sahip olabilir. Bu nedenle, WebDriver ekibine , bir sonraki WebDriver sürümünde uygulamadan önce bu yeni süreci anlamaları için biraz zaman vermelisiniz .

Ancak, yeni tarayıcıyı destekleyip desteklemeyeceklerine karar vermek WebDriver'ın geliştirici ekibine kalmıştır.

Selenium RC Dahili Test Sonucu Üreticiye Sahiptir

Selenium RC, test sonuçlarının bulunduğu bir HTML dosyasını otomatik olarak oluşturur . Raporun formatı RC'nin kendisi tarafından önceden belirlendi. Aşağıdaki bu raporun bir örneğine bakın.

WebDriver, otomatik olarak bir Test Sonuçları Dosyası oluşturan yerleşik bir komuta sahip değildir . IDE'nizin çıktı penceresine güvenmeniz veya raporu programlama dilinizin yeteneklerini kullanarak kendiniz tasarlamanız ve metin, HTML vb. Olarak saklamanız gerekir.

Özet

  • WebDriver, web uygulamalarını farklı programlama dilleri kullanarak farklı tarayıcılarda test etmeye yönelik bir araçtır .
  • WebDriver , testlerinizi tasarlarken seçtiğiniz bir programlama dilini kullanmanıza izin verdiği için artık güçlü testler yapabilirsiniz .
  • WebDriver, daha basit mimarisi nedeniyle Selenium RC'den daha hızlıdır .
  • WebDriver doğrudan tarayıcıyla konuşur, Selenium RC ise bunun için RC Sunucusunun yardımına ihtiyaç duyar.
  • WebDriver'ın API'si Selenium RC'lerden daha özlüdür .
  • Selenium RC destekleyemezken WebDriver HtmlUnit'i destekleyebilir .
  • WebDriver'ın tek dezavantajları şunlardır:
    • Bu kolayca yeni tarayıcıları destekleyemez ancak Selenyum RC can.
    • Bu yerleşik bir komuta yoktur test sonuçlarının otomatik olarak oluşturulmasını.