selenium grid tutorial
Selenium Grid'e Giriş ve Selenium Grid Kullanarak Çapraz Tarayıcı Testi Nasıl Gerçekleştirilir:
Şimdi bunun sonuna yaklaştık kapsamlı Selenium öğreticiler serisi . Önümüzdeki hafta, bu çevrimiçi Selenium Eğitim serisini “Selenium Projelerinin efor tahmini” ve “Selenium Röportaj soruları ve cevapları” eğitimleriyle sonlandıracağız.
Bugün, bu eğitimde sizi tanıtacağız Selenyum Izgara - bir dağıtılmış test yürütme bir test geçişinin yürütülmesini hızlandırmak için ortam. Selenium Grid kullanarak Çapraz tarayıcı testinin nasıl gerçekleştirileceğini öğrenin.
Ne öğreneceksin:
- Selenium Grid'in İhtiyacı Nedir?
- Selenyum Grid'in Faydaları
- Selenium GRID'i yükleyin
- Tarayıcı ve Düğümler
- maxInstances
- maxSession
- Örnek Şebeke Kodu
- JSON Dosyası Kullanarak Yapılandırma
- Sonuç
- Önerilen Kaynaklar
Selenium Grid'in İhtiyacı Nedir?
Bütün boyunca ilerlerken Selenium WebDriver Eğitimleri WebDriver'ın test durumlarınızı tek bir makinede yürüteceğini göreceksiniz.
İşte böyle bir kurulumla ilgili birkaç sorun:
- Farklı İşletim Sistemleri için test senaryolarınızı yürütmek isterseniz ne olur?
- Test olaylarınızı aynı tarayıcının farklı sürümünde nasıl çalıştırabilirsiniz?
- Test durumlarınızı birden fazla tarayıcıda nasıl çalıştırırsınız?
- Bir senaryo, herhangi bir test senaryosuna bağlı olmasa bile neden diğer test senaryolarının yürütülmesini beklemelidir?
Tüm bu sorunlar Selenium GRID'de ele alınmaktadır.
Selenium kursuna devam ederken bu sorunları nasıl aşabileceğimiz konusunda fikir sahibi olacağız. Temel olarak, Grid mimarisi master-slave mimarisine dayanır. Ana makine, test durumlarını farklı bağımlı makinelere dağıtır.
Grid'in 2 versiyonu mevcuttur. Selenium Grid 2.0, Selenium'un en son sürümüdür. Selenium 1.0 önceki sürümdü. Selenium uzmanlarının çoğu, yeni özelliklerle dolu olduğu için Selenium Grid 2.0'ı kullanmayı tercih ediyor. Selenium Grid 2.0 hem Selenium RC hem de Selenium WebDriver komut dosyalarını destekler.
Önerilen Araç:
# 1) LambdaTest
Selenium otomasyon testini ölçeklenebilir, güvenli ve güvenilir bulut tabanlı bir Selenium Grid üzerinde çevrimiçi gerçekleştirin. Selenium test otomasyonunuzu hızlandırın aynı zamanda 2000'den fazla masaüstü ve mobil tarayıcı ortamının çevrimiçi altyapısını test ederek test kapsamınızı genişletin.
Önerilen okuma = >> LambdaTest ile Tarayıcı Testini Otomatikleştirin
=> LambdaTest Web sitesini ziyaret edin
Selenyum Grid'in Faydaları
- Selenium Grid, test durumlarınızı yürütmek üzere dağıtma esnekliği sağlar.
- Toplu işlem süresini azaltır.
- Çoklu tarayıcı testi gerçekleştirebilir.
- Çoklu işletim sistemi testi gerçekleştirebilir.
Selenyum Grid'in Temel Terminolojisi:
Hub : Hub, tüm istekleri alan tüm GRID Mimarisinin merkezi noktasıdır. Selenyum ızgarasında yalnızca bir göbek vardır. Hub, test olaylarını her düğüm boyunca dağıtır.
Düğüm : Grid'de birden fazla düğüm olabilir. Testler düğümlerde çalışacak. Her düğüm, Hub ile iletişim kurar ve kendisine atanan testi gerçekleştirir.
Selenium GRID'i yükleyin
Aşama 1 : Daha önce Selenium RC Server olarak bilinen Selenium'un resmi web sitesinden Selenium Server jar dosyasını indirin ve yerel diskteki herhangi bir yere kaydedin.
Selenium HQ URL'si: http://www.seleniumhq.org/download/
Adım 2 : Komut istemini açın ve sunucunun bulunduğu klasöre gidin. Aşağıdaki komutu kullanarak sunucuyu çalıştırın
java -jar selenyum-sunucu-bağımsız-2.41.0.jar -role hub
Hub varsayılan olarak 4444 numaralı bağlantı noktasını kullanacaktır. Bu bağlantı noktası, bağlantı noktasının açık olması ve bir görev atanmamış olması koşuluyla, komut isteminde farklı bağlantı noktası numarası geçirilerek değiştirilebilir.
Durum, web arayüzü kullanılarak kontrol edilebilir: http: // localhost: 4444 / grid / console
Aşama 3 : Düğümleri kurmayı düşündüğünüz diğer makineye gidin. Komut istemini açın ve aşağıdaki satırı çalıştırın.
java -jar selenium-server-standalone-2.41.0.jar -role node -hub http://localhost:4444/grid/register -port 5556
Düğümleri başlatmak için selenyum sunucusunu diğer makinelerde çalıştırın.
Tarayıcı ve Düğümler
Her makinede hub ve düğümleri başlattıktan sonra, GRID Konsoluna gideceğinizde
Aşağıdaki gibi Tarayıcı bölümünde 5 Chrome, 5 Firefox ve 1 IE tarayıcısı bulacaksınız.
Bu, varsayılan olarak 5 Chrome, 5 Firefox ve 1 IE tarayıcısı kullanabileceğinizi gösterir.
Örnek için, yalnızca IE kullanmak istiyorsanız, aşağıdaki komutu kullanarak düğümü başlatabilirsiniz:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore
GRID Konsolu'ndaki diğer ayrıntılarla birlikte tarayıcı Türü'nü doğrulamak için yapılandırmayı görüntüle .
Benzer şekilde Firefox için:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=firefox
Chrome için:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=chrome
Her türden tarayıcıya ihtiyaç duyabileceğiniz birkaç senaryo vardır, örneğin: IE, Chrome ve Firefox.
Örneğin, 1 IE ve 1 Firefox ve 1 Chrome tarayıcısı kullanmanız gerekebilir
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore -browser browserName=firefox -browser browserName=chrome
maxInstances
maxInstance, bir düğümdeki tarayıcı başlatma sayısını sınırlamak için kullanılır.
Örneğin, 2 Firefox ve 2 IE ile çalışmak istiyorsanız, maxInstance kullanarak düğümü başlatabilirsiniz.
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=firefox,maxInstance=3
Maksimum örnek, yapılandırma sekmesi altında doğrulanabilir.
Benzer şekilde, diğer tarayıcı örnekleri de maxInstances kullanılarak yapılandırılabilir.
maxSession
maxSession, uzaktaki sistemde kaç adet tarayıcının paralel olarak kullanılabileceğini yapılandırmak için kullanılır.
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=chrome,maxInstance=3 -browser browserName=firefox,maxInstance=3 –maxSession 3
Benzer şekilde, birden fazla düğüm başlatabilir ve yapılandırma konsolda doğrulanabilir.
NODE1:
NODE2:
Örnek Şebeke Kodu
Burada örnek bir GRID test senaryosu çalıştırmak için TestNG'yi kullandım.
Önkoşul : Daha önce açıklandığı gibi Hub ve düğümler oluşturun ve TestNG tutulmada yapılandırılmalıdır.
Burada Gmail'e giriş yapmak ve kullanıcı adı ve şifre girmek için örnek bir test yaptım
public class GridExample { @Test public void mailTest() throws MalformedURLException{ DesiredCapabilities dr=null; if(browserType.equals('firefox')){ dr=DesiredCapabilities.firefox(); dr.setBrowserName('firefox'); dr.setPlatform(Platform.WINDOWS); }else{ dr=DesiredCapabilities.internetExplorer(); dr.setBrowserName('iexplore'); dr.setPlatform(Platform.WINDOWS); } RemoteWebDriver driver=new RemoteWebDriver(new URL('http://localhost:4444/wd/hub'), dr); driver.navigate().to('http://gmail.com'); driver.findElement(By.xpath('//input(@id='Email')')) .sendKeys('username'); driver.findElement(By.xpath('//input(@id='Passwd')')) .sendKeys('password'); driver.close(); }
Örnekte olduğu gibi, GRID kullanıyorsanız ve tarayıcıya yetenekler sağlamanız gerekiyorsa RemoteWebDriver'ı kullanmanız gerekir. Tarayıcıyı ve platformu yukarıdaki gibi ayarlamalısınız.
örneklerle java 8'deki yeni özellikler
Bu örnekte platformu WINDOWS olarak kullandım. İhtiyacınıza göre herhangi bir platformu kullanabilirsiniz.
Tarayıcının bir sürümü de dr.setVersion ('sürüm') kullanılarak ayarlanabilir
Örnek için, bu testi birden çok tarayıcıda seri olarak çalıştırmanız gerekir, testng.xml'nizi yapılandırmanız gerekir. Aşağıda, testinizi seri olarak çalıştırmak için yukarıdaki test için testng.XML paketidir.
Testi paralel çalıştırmak için, testng.xml dosyanızı aşağıdaki gibi değiştirmeniz gerekir.
Burada testng.XML'de parametreyi şu şekilde belirtmeniz gerekir: Parllel = 'Testler' ve iplik sayısı = '3' paralel olarak yürütülecek maksimum iş parçacığı sayısını açıklar.
JSON Dosyası Kullanarak Yapılandırma
Izgara, bir JSON yapılandırma dosyası kullanılarak yapılandırmasıyla birlikte başlatılabilir.
Aşağıdaki yapılandırmaya sahip olmak için bir JSON dosyası oluşturun. Burada grid_hub.json adında bir JSON dosyası oluşturdum
{ 'host': null, 'port': 4444, 'newSessionWaitTimeout': -1, 'servlets' : (), 'prioritizer': null, 'capabilityMatcher': 'org.openqa.grid.internal.utils.DefaultCapabilityMatcher', 'throwOnCapabilityNotPresent': true, 'nodePolling': 5000, 'cleanUpCycle': 5000, 'timeout': 300000, 'maxSession': 5 }
Aşağıdaki komutu kullanarak hub'ı başlatın
java -jar selenyum-sunucu-bağımsız-2.41.0.jar -role hub –hubConfig grid_hub.json
Benzer şekilde, gerekli konfigürasyona göre farklı düğümler için farklı json dosyası oluşturun.
Grid_node.json adlı düğüm için JSON yapılandırma dosyasının bir örneğini burada bulabilirsiniz
{ 'capabilities': ( { 'browserName': 'chrome', 'maxInstances': 2 }, { 'browserName': 'firefox', 'maxInstances': 2 }, { 'browserName': 'internet explorer', 'maxInstances': 1 } ), 'configuration': { 'nodeTimeout':120, 'port':5555, 'hubPort':4444, 'hubHost':'localhost', 'nodePolling':2000, 'registerCycle':10000, 'register':true, 'cleanUpCycle':2000, 'timeout':30000, 'maxSession':5, } }
Düğümü başlatmak için
java -jar selenyum-sunucu-bağımsız-2.41.0.jar -role rc –nodeConfig grid_node.json
JSON dosyasında bir tarayıcının, maxInstances, port, maxSession vb. Tüm konfigürasyonlarını değiştirebilirsiniz.
JSON yapılandırma dosyasındaki platform olan tarayıcı sürümünü aşağıdaki gibi sağlayabilirsiniz:
{
“BrowserName”: “chrome”, ”version”: ”8”, ”platform”: ”Windows”
}
Sonuç
Tavsiye edilir Çoklu tarayıcı testi yapmanız gerektiğinde ve çok sayıda test durumunuz olduğunda Selenium Grid'i kullanın.
Bu modülde, Grid hub ve düğümlerinin nasıl kurulacağının yanı sıra testng.XML ve JSON dosyası kullanılarak Grid test durumlarının nasıl çalıştırılacağını ele aldık.
Sonraki Eğitim # 30 : Selenyum ve Salatalık aracıyla otomasyon testi . Salatalık BDD testidir araç ve Çerçeve. Salatalık aracının özelliklerini ve kullanımını gerçek zamanlı senaryolarda öğreneceğiz. Selenium WebDriver'ı Salatalık ile entegre etme .
Lütfen Selenium Grid ile ilgili sorularınızı aşağıdaki yorumlara yazın.
Önerilen Kaynaklar
- Docker Selenium Eğitimi: Selenium Grid'i Docker ile Entegre Etme
- Salatalık Aracı ve Selenyum Kullanarak Otomasyon Testi - Selenyum Eğitimi # 30
- Salatalık Selenium Eğitimi: Salatalık Java Selenium WebDriver Entegrasyonu
- Selenyum ile Entegrasyon ve Fonksiyonel Test İçin Spock
- Yeni Başlayanlar İçin Derinlemesine Tutulma Öğreticileri
- Selenium WebDriver'a Giriş - Selenium Eğitimi # 8
- Geb Eğitimi - Geb Aracını Kullanarak Tarayıcı Otomasyon Testi
- Parrot QA Eğitimi: Çapraz Tarayıcı İşlevsel Test Aracı İncelemesi