Selenium Grid Nedir?

Kübra Akbulut
Ebebek Tech
Published in
4 min readSep 8, 2021

Ebebek’te bugün itibariyle 100’den fazla yazmış olduğumuz regresyon ve fonksiyonel testlerin sayısı arttıkça, test koşum süresini azaltmak istedik ve “Selenium Grid” kullanmaya karar verdik. (Selenium Grid, farklı tarayıcılarda, işletim sistemlerinde ve makinelerde paralel olarak birden çok test çalıştırma konusunda uzmanlaşmış Selenium Suite’in bir parçasıdır.)

Selenium Grid’den önce , “Selenium nedir?” öncelikle bunu açıklayalım.

Selenium Nedir?

Selenium, Javascript çerçevesine dayalı bir otomasyon test araçları çerçevesidir. İstenilen web sayfasında, manuel işlem gerektirmeden otomatik olarak çalıştırılabilir. Java, Python, C# gibi birçok dili destekler. Kısacası web yazılımı, uygulaması test etme framework’ü diyebiliriz.

Selenium Grid Nedir?

Selenium Grid, yazılmış olan test senaryolarının aynı anda paralel olarak koşturulmasını sağlayan bir sunucudur. Farklı tarayıcılarda, işletim sistemlerinde ve sunucularda birden fazla test çalıştırılmasına imkan verir. İstenilen tarayıcıyı, tarayıcı sürümünü ve işletim sistemini belirterek çalıştırabilirsiniz. Selenium Grid Hub ve node’lardan oluşur.

Hub, test requestlerini alarak farklı uzak node’lara yönlendiren bir server’dır. Clientten istenilen tarayıcıyı, tarayıcının versiyonunu ve işletim sistemi hakkındaki bilgilieri alır ve uygun olaran node’lara gönderir.

Node, yerel bir işletim sistemi ve uzak bir Web sürücüsünden oluşan uzak bir cihazdır. Hub’dan istekleri Json komutları ile alır ve WebDriver kullanarak yürütür.

Server üzerinde bir tane Hub, birden fazla Node olabilir.

  • Örnek verecek olursak, Hub’ı müdür, çalışanları node’lar olarak düşünelim. Yapılacak bir işi, bu iş için uygun olan çalışanlara yönlendirecektir. Hub ile Node arasındaki ilişki de bu ilişkiye benzer.

Selenium Grid’in Avantajları Nedir?

  • Testleri paralel olarak çalıştırarak zaman tasarrufu sağlar.
  • Farklı işletim sistemlerinin farklı versiyonları olan tarayıcılarda koşturulabilir.
  • Çoklu işletim sistemi testleri gerçekleştirebilir.
  • Sunucuyu, ortamı hızlı bir şekilde ayağa kaldırır.

Selenium Grid’in Dezavantajları Nedir?

  • Konfigüre etmesi zordur. (Server kurulumu, browser ve drive’ların yüklenmesi vb.)
  • Farklı browserların farklı versiyonlarını test etme açısından yönetmesi zordur.

Selenium Grid Kurulumu

Adım 1: İlk olarak Selenium’un resmi websitesinden (https://www.selenium.dev/downloads/) Selenium Server jar dosyasını indirip ve diskiniz üzerinde herhangi bir yere kaydedin.

Adım 2: Terminali açın ve sunucunun bulunduğu klasöre giderek aşağıdaki komutu çalıştırın.

java -jar selenium-server-standalone-2.41.0.jar -role hub

Hub varsayılan olarak 4444 portlu 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ı portu geçirilerek değiştirilebilir.

Durum, web arayüzü kullanılarak http://localhost:4444/grid/console üzerinden kontrol edilir.

Adım 3: Node’ları kurmayı düşündüğünüz diğer server’a gidin. Terminali 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

Node’ları başlatmak için selenium sürücüsünü diğer serverlarda çalıştırın.

Browsers and Nodes

Her server’da hub ve node’ları başlattıktan sonra, Grid konsolunu açtığınızda aşağıdaki gibi Browsers bölümünde 5 Firefox, 1 Internet Explorer, 5 Chrome görüntüleyeceksiniz.

Bunlar varsayılan olarak 5 Firefox, 1 Internet Explorer, 5 Chrome tarayıcısı kullanabileceğinizi gösterir.

  • Eğer sadece firefox kullanmak isterseniz aşağıdaki satırı çalıştırarak node başlatabilirsiniz.

java -jar selenium-server-standalone-3.5.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browserName=firefox

  • Aynı şekilde sadece internet explorer kullanmak isterseniz,

java -jar selenium-server-standalone-3.5.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore

  • Chrome için,

java -jar selenium-server-standalone-3.5.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=chrome

  • Tüm tarayıcı türlerine ihtiyaç duyulabilecek senaryolar da olabilir. İnternet Explorer, Chrome ve Firefox gibi,
  • Aşağıdaki satırı çalıştırarak 1 IE, 1 Firefox, 1 Chrome tarayıcısı kullanabilirsiniz.

java -jar selenium-server-standalone-3.5.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore -browser browserName=chrome -browser browserName=firefox

maxInstances

Bir node’daki browser başlatma sayısını sınırlamak için maxInstance kullanılır.

  • 2 Firefox ve 2 Chrome çalıştırmak isterseniz, maxInstance kullanarak node başlatabilirsiniz.

java -jar selenium-server-standalone-3.5.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore -browser browserName=chrome,maxInstance=3

maxInstance, configuration tab’ının altında control edilebilir.

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-3.5.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore,maxInstance=3 -browser browserName=firefox, maxSession 3

Aynı şekilde konsoldan configuration tab’ından kontrol edilebilir.

Ebebek Tech

--

--