Dağıtılmış Selenium testi için bir Selenium Grid kurma

Bu blog, Selenium Grid'e olan ihtiyacı ve faydalarını anlamanıza yardımcı olacaktır. Hub ve düğümleri yapılandırarak ilk Selenium Grid'inizi kurmak için okuyun.

Bu Selenium eğitim serisindeki diğer bloglar, test senaryolarının oluşturulması ve bu test senaryolarının sırayla ve paralel olarak yürütülmesinden bahseder. Dolayısıyla, tartışma için kalan son teknik, test durumlarının uzak makinelerde yürütülmesidir. Selenium Grid, bu testleri uzak makinelerde / ana bilgisayarlarda yürütmek için kullanılabilir. Dolayısıyla, bugünün blogunun tartışma konusu budur.



  1. Selenium Grid neden ve ne zaman kullanılmalı?
  2. Selenium Grid nedir?
  3. Selenium Grid 1 - Selenium Grid 2
  4. Selenium Grid Mimarisi
  5. Selenyum Izgara Oluşturmak

Selenium Grid Neden ve Ne Zaman Kullanılır?

Bugün kullanımda olan pek çok web tarayıcısı var. Kullanıcılar bu blogu okumak için Chrome veya Firefox veya Safari veya Opera veya hatta Internet Explorer kullanıyor olabilir. Tarayıcıların farklı sürümlerini kullanıyor olabilirler. Ayrıca, bu tarayıcıları herhangi bir işletim sisteminde, Windows veya Mac veya Ubuntu veya başka herhangi bir Linux dağıtımı üzerinde çalıştırıyor olabilirler.



Ya kullanıcılar internette önemli bir şey görüyor olsaydı? İşletmeniz için önemli bir şey. Kullanıcılarınızın ve / veya müşterilerinizin en iyi kullanıcı deneyimini yaşamasını sağlamak için fazladan bir adım atmak (web uygulamasını test etmek) istemez miydiniz? Yaparsın, değil mi?

Pekala, yapmalısın!



Ama soru şu ki, bu ne kadar mümkün? Web uygulamanızı mümkün olan her işletim sisteminde ve mevcut her web tarayıcısında test etmek için zaman harcayabilecek misiniz? Hmm, bu biraz zor gibi görünüyor. Burası Selenium Grid'in faturaya uyduğu ve yardımcı olduğu yerdirzamanınızı ve enerjinizi koruyun.

Buna ek olarak bir soru daha ortaya çıkıyor: Selenium grid altyapısını yerel sistemler kullanarak kurmak uygun mudur? Gerekli tüm tarayıcılar ve işletim sistemleriyle bir ızgarayı korumak zorlu bir iştir. Bunun için, selenyum otomasyon komut dosyalarınızı çalıştırmak için erişebileceğiniz çevrimiçi bir Selenium Grid sağlayan birden fazla çevrimiçi platform vardır. Örneğin, kullanabilirsiniz LambdaTest . Üzerinde testlerinizi çalıştırabileceğiniz ve tam otomatik tarayıcılar arası test yapabileceğiniz 2000'den fazla tarayıcı ortamına sahiptir.

Selenyum Izgara Nedir?

Selenium Grid, Selenium araç takımındaki bir başka önemli araçtır. Grid, birden fazla web tarayıcısında aynı anda çalışabilen veya farklı işletim sistemlerinde başlatılabilen veya hatta farklı makinelerde barındırılabilen WebDriver testleri / RC testlerini koordine edebilir.



ızgara çalışması - selenyum ızgaraPeki bu nasıl oluyor? Grid, ana olarak hareket eden bir Hub ve bağımlı olarak hareket eden bir veya daha fazla Düğümün bulunduğu bir Hub-Node mimarisi kullanır.

Bunun anlamı, gerçekleştirilmesi gereken toplam 100 iş / testiniz varsa, testler aynı anda 5 makinede yürütülebilir, burada her makine 20 test çalıştırır. Aslında, bu testleri farklı işletim sistemi ve tarayıcı kombinasyonlarında gerçekleştirebilirsiniz. Buradaki her makine farklı bir işletim sistemine sahip olabilir ve her işletim sisteminin içinde testler farklı tarayıcılarda gerçekleştirilebilir.

Bu hareket, test yürütmede zamanınızın çoğundan kolayca tasarruf sağlayacaktır. Yukarıdaki örneği ele alırsanız, yürütme süresini tek bir makinede testleri gerçekleştirmek için harcanan toplam sürenin yaklaşık 1 / 5'ine indirebiliriz.

Önceki bloglarımdan hatırlarsanız, Grid'in başlangıcından beri, yani Selenium v1'den beri Selenium projesinin bir parçası olduğundan sayısız kez bahsetmiştim. Selenium Grid de Selenium v2'nin bir parçasıydı ve şu anda Selenium v3'ün bir parçası. Selenium Grid'in v2 ve v3'lerinde pek bir fark yoktur. Ancak, v1'in karşılaştırmalı olarak birçok farklılığı vardır. Öyleyse, hadiv1 ve v2 arasındaki farkları anlayın.

Selenium Grid 1 - Selenium Grid 2

Grid v1.0 ve v2.0 arasındaki temel fark, RC'nin Grid 1'de kullanılması ve WebDriver'ın Grid 2'de kullanılmasıdır. Aşağıdaki tablo farklılıkları ayrıntılı olarak açıklamaktadır.

Izgara 1 Izgara 2
Apache Ant'ın yüklenmesini gerektirirApache Ant kurulumu gerekli değildir
Kendi uzaktan kumandasına sahiptir (Bu, RC sunucusundan farklıdır)Selenium Sunucu jar dosyasıyla birlikte gelir
Yalnızca Selenium RC komutlarını desteklerHem Selenium RC hem de WebDriver komut dosyalarını destekler
Uzaktan kumanda başına yalnızca bir tarayıcıyı otomatikleştirebilirsinizUzaktan kumanda başına 5 tarayıcıya kadar otomatikleştirebilirsiniz


Artık iki versiyon arasındaki temel farkları öğrendiğimize göre, Selenium Grid'e derinlemesine bakalım..

Selenium Grid Mimarisi

Daha önce bahsettiğim gibi Grid, bir Hub ve birden fazla Düğüm temelinde çalışır. Ancak, Hub ve Düğümler nedir ve ne yaparlar?

Merkez

Herhangi bir Grid kurulumunda, yalnızca bir Hub olabilir ve bu, Grid kurulumundaki merkezi nokta olacaktır. Gerçekleştirilmesi gereken tüm testler buraya yüklenmelidir. Buraya yüklenen testlere rağmen, bunlar sadece Düğümlerde yürütülecektir. Herhangi bir ana makineyi Merkezimiz olacak şekilde yapılandırabiliriz ve diğer ana makinelerde test yürütme faaliyetlerini koordine eder.

Bunun gerçekleşmesi için önce Hub'ı yapılandırmamız ve ardından diğer Düğümleri Hub'a kaydolması için yapmamız gerekir. Çok fazla ayrıntıya girmeden önce, size Hub'ı yapılandırma komutunu göstereyim.

Hub'ı Yapılandırma

Öncelikle Selenium sunucu JAR dosyasını Seleniumhq’ın web sitesinden indirmeniz gerekir. Bağlantı İşte . Ayrıca, Java'nın sisteminizde kurulu olduğundan ve ortam değişkenlerinin ayarlandığından emin olmanız gerekir.

Jar dosyasını indirdikten sonra, onu uygun bir dizine yerleştirmeniz gerekir. Size kolaylık sağlamak için indirdim ve C Drive'daki Selenium klasörüne yerleştirdim. Ayrıca jar dosyasını indirmeniz ve diğer tüm düğümlerde benzer bir dizine yerleştirmeniz önerilir.

Hub'ı yapılandırmak için, komutu Windows komut isteminde çalıştırmanız gerekir. Komut aşağıdaki kod parçacığında mevcuttur.

C: UsersVardhan> cd .. C: Kullanıcılar> cd .. C:> cd Selenium C: Selenyum> java -jar selenyum-sunucu-bağımsız-3.4.0.jar -role hub

selenium-server-standalone-3.4.0.jar indirdiğim jar dosyasının adıdır.
-ol bayrağı, söz konusu ana makineyi Hub olarak ayarlamak için kullanılır. Enter tuşuna bastığınızda, aşağıdaki çıktıyı ekranınızda göreceksiniz.

java'da sanal işlev nedir

Yukarıdaki ekran görüntüsünü fark edemediyseniz, tekrar görün. Diyor ki ' -Node'lar http://192.168.0.11:4444/grid/register adresine kaydolmalıdır ‘. Artık Hub yapılandırıldığına göre, Düğümleri kurmamız ve onları bu Hub'a bağlamamız gerekiyor.

192.168.0.11, Hub'ın IP adresidir ve her Düğüm bu IP adresine bağlanmalıdır. 4444, Selenium Grid'in barındırıldığı ve istekleri dinlediği varsayılan bağlantı noktası numarasıdır. 4444 numaralı bağlantı noktasında başka bir hizmet çalışıyorsa ve Selenium Grid'in başka bir bağlantı noktasında barındırılmasını istiyorsanız, bunu, -Liman bayrak ve ardından bağlantı noktası numarası.

Düğümler

Düğümler, testlerin çalıştırıldığı ana makinelerdir. Bu testler, Merkez tarafından başlatılacaktır. Hub, uzak makinelerde veya Hub'ın bulunduğu aynı makinede bir veya daha fazla Düğümü başlatabilir. Düğümlerin her birinde farklı işletim sistemleri önyüklenebilir ve farklı işletim sistemlerinde aynı tarayıcının veya farklı tarayıcıların farklı sürümleri başlatılabilir.

Düğümleri Yapılandırma

Hub'a benzer şekilde, önce Jar dosyasını Node makinelerine indirmeniz ve rahatınız için C Sürücüsüne veya başka bir ortak dizine yerleştirmeniz gerekir. Daha sonra Windows komut isteminde aşağıdaki komutu çalıştırabilirsiniz. Node'u bile Hub'ınızla aynı makinede başlatıyorsanız, başka bir komut istemi başlatarak komutu çalıştırmanız gerekir.

java -Dwebdriver.chrome.driver = E: chromedriver.exe -jar selenyum-sunucu-bağımsız-3.4.0.jar-rol düğümü -hub http://192.168.0.11:4444/grid/register

Hub'ı başlatmak için gereken komutla karşılaştırıldığında bu komutta sadece birkaç fark vardır.
-Dwebdriver.chrome.driver = E: chromedriver.exe tarayıcı sürücüsünün yolunu ayarlamak için kullanılır. WebDriver kodunuzda tarayıcı sürücüsünün yolunu ayarlamaya benzer şekilde, Düğümün testleri gerçekleştirmesini sağlamak için onu burada belirtirsiniz. Selenium v3'ten itibaren, Firefox için sürücü tarayıcısını indirmeniz gerekir. Firefox için tarayıcı sürücüsü Gecko sürücüsüdür. Ancak, 1. ve 2. sürümlerde, Firefox dışındaki tüm tarayıcılar için tarayıcı sürücüsünü ayarlamanız gerekir.
-rol düğümü bayrağı, söz konusu ana makineyi Düğüm olarak ayarlamak için kullanılır.
-hub http://192.168.0.11:4444/grid/register Düğüme, Hub'ın IP adresini kullanarak Hub'a bağlanması için bilgi verir. Unutulmaması gereken önemli bir nokta, Hub'ınız ile aynı makinede herhangi bir Düğüm başlatıyorsanız, ' -hub http: // localhost: 4444 / grid / register Hub’ın IP adresi yerine komutta.

goto ifadesi c ++

Enter tuşuna bastığınızda, komut isteminde aşağıdaki çıktıyı alacaksınız.

Şimdiye kadar, Düğüm Merkeze bağlanacaktı. Hub'ı başlatmak için kullanılan komut istemine geri dönerek bunu doğrulayabilirsiniz ve şu mesajı göreceksiniz: ' Bir düğüm kaydı http://192.168.0.11:5555 ‘.

IP adresi ve bağlantı noktası numarası, Düğümünüzün numarasıdır. Düğümüm Hub'ım ile aynı makinede olduğundan, Düğüm için kullanılan bağlantı noktası 5555'tir. Başka bir makinede başlattığınızda, varsayılan bağlantı noktası kullanılacaktır.

Aşağıdaki URL'yi Hub makinenizde başlattığınızda, Hub'ınıza bağlı Düğümlerin durumunu alırsınız. Aşağıdaki ekran görüntüsünde vurgulanan kısma bakın.

Artık Selenium Grid'iniz yapılandırıldığına göre, Düğümler üzerinde test komut dosyalarının yürütülmesine geçebilirsiniz. Merkezimizde betikleri çalıştırmamız gerektiğini ve bunların Düğümlerimizde çalıştırılacağını tekrar vurgulayayım. Testleri yürütmek için kullanılan komut dosyası WebDriver'a benzertestleri.

Selenyum Izgara Yapmak

Komut dosyamı Eclipse IDE'de çalıştırdım. Bu betiğin yürütülmesi iki önemli kitaplık paketine dayanır. Onlar DesiredCapabilities nesne ve RemoteWebDriver nesne.

Düğümümüzün tarayıcı türünü ve işletim sistemini ayarlamak için DesiredCapabilities kullanılır. DesiredCapabilities nesnesini içe aktarmak için aşağıdaki kodu kullanın.

org.openqa.selenium.remote.DesiredCapabilities'i içe aktar

RemoteWebDriver, testi yürütmek istediğimiz Düğümü seçmek için kullanılır. RemoteWebDriver nesnesini içe aktarmak için aşağıdaki kod satırlarını kullanın.

java.net.MalformedURLException import java.net.URL import org.openqa.selenium.remote.RemoteWebDriver

Bu iki paketi, aşağıdaki kod parçacığında gösterildiği gibi komut dosyam için TestNG ek açıklama paketiyle birlikte içe aktardım. TestNG notlarını içe aktardım çünkü bunu ayrıntılı bir raporun oluşturulacağı bir TestNG testi olarak gerçekleştirdim. Kodunuz için aynı paket kümesini içe aktarmanızı tavsiye ederim.

Selenium Hub konsolunda bulunan herhangi bir tarayıcının logoları üzerinde manevra yaptığınızda, aşağıdaki gibi ayrıntıları alacaksınız. browserName ve platform otomatikleştirmek istediğiniz Düğümün Görüntü ayrıca Düğümümde kaç tarayıcı örneği açabileceğimi de gösterir. En fazla 5 Chrome, 5 Firefox ve 1 Internet Explorer örneği yapılandırabilirim. Bu ayrıntılar aşağıdaki ekran görüntüsünde mevcuttur.

İlk Grid'inizi kurmak için aşağıdaki kod parçacığındaki kodu kullanabilirsiniz.

paket GridTest import org.testng.annotations.AfterTest import org.testng.annotations.BeforeTest import org.testng.annotations.Test import java.net.MalformedURLException import java.net.URL import org.junit.Assert import org.openqa.selenium .Platform import org.openqa.selenium.WebDriver import org.openqa.selenium.remote.DesiredCapabilities import org.openqa.selenium.remote.RemoteWebDriver genel sınıfı TestGrid {statik WebDriver sürücüsü statik String nodeUrl @BeforeTest public void setup (), MalformedURLException {) atıyor nodeUrl = 'http://192.168.0.11:5555/wd/hub' DesiredCapabilities yetenekleri = DesiredCapabilities.chrome () yetenekleri. ), yetenekler)} @Test public void simpleTest () Edureka ', driver.getTitle ()) @AfterTest public void afterTest () {driver.quit ()}}

Tüm test komut dosyasını üç test ek açıklamasına böldüm. @BeforeTest, @Test ve @AfterTest. @BeforeTest'te, Düğümümü yapılandırmak için DesiredCapablities ve RemoteWebDriver nesnelerini kullandım. @Test'te, Düğümden Edureka’nın ana sayfasına gitmesini ve sayfanın başlığını belirtmesini istedim. @AfterTest'te, Düğümden tarayıcı örneğinden çıkmasını istedim.

Testiniz yürütmeyi geçtiğinde, aşağıdaki çıktıyı alacaksınız.

18 Mayıs 2017 3:09:07 PM org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Algılanan lehçe: OSS PASSED: simpleTest ======================= ========================== Varsayılan test Çalıştırılan testler: 1, Başarısızlıklar: 0, Atlamalar: 0 ========== =================================== ============= ================================ Varsayılan paket Çalıştırılan toplam test sayısı: 1, Başarısızlıklar: 0, Atlamalar: 0 = ============================================

Bu bir TestNG testi olarak yürütüldüğünden, aşağıdaki ekran görüntüsüne benzer ayrıntılı bir test raporu alacaksınız.

TestNG'nin ne olduğunu ve test ek açıklamalarını nasıl kullanacağınızı bilmiyorsanız, nasıl kullanılacağına ilişkin blogumu okuyun Selenium WebDriver TestNG ile bu Selenium eğitim serisinden.

Selenium Grid'in nasıl yapılacağına dair bir gösteriye şahit olmak için aşağıdaki videoyu izleyebilirsiniz. Videoyu sunan eğitmen bu blogda açıklanan kavramların aynısını açıklıyor.

Yeni Başlayanlar İçin Selenium Grid Eğitimi | Selenium Eğitimi | Edureka

Bu bizi Selenium Grid blogunun sonuna getiriyor. Bu blog dizisinin herhangi bir kodu / içeriğiyle ilgili herhangi bir şüpheniz veya sorununuz varsa, lütfen bunları aşağıdaki yorumlar bölümüne bırakın, sorununuzu en kısa sürede çözeceğim.

Selenium öğrenmek ve test alanında bir kariyer oluşturmak istiyorsanız, etkileşimli, canlı çevrimiçi sayfamıza göz atın. burada, öğrenme döneminiz boyunca size rehberlik edecek 24 * 7 destekle birlikte gelir.

Bizim için bir sorunuz mu var? Lütfen yorum bölümünde bahsedin, size geri döneceğiz.