Hướng dẫn về Selenium Grid: Hub & Node (có Ví dụ)

Selenium Grid là gì?

Selenium Grid là một phần của Selenium Suite chuyên chạy song song nhiều bài kiểm tra trên các trình duyệt, hệ điều hành và codey khác nhau. Nó đạt được bằng cách định tuyến các lệnh của các trường hợp trình duyệt từ xa trong đó codey chủ hoạt động như một trung tâm. Người dùng cần cấu hình codey chủ từ xa để thực hiện các bài kiểm tra.

==>> Tải về toàn bộ tài liệu về selenium grid là gì

Video selenium grid là gì cho người mới bắt đầu

Video

 

Selenium Grid có 2 phiên bản – Grid 1 cũ hơn và Grid 2. Chúng tôi sẽ chỉ tập trung vào Grid 2 vì Grid 1 đang dần bị Nhóm Selenium không dùng nữa.

Hướng dẫn về Selenium Grid: Hub & Node (có Ví dụ)

Selenium Grid sử dụng khái niệm hub-node trong đó bạn chỉ chạy thử nghiệm trên một codey duy nhất được gọi là hub , nhưng việc thực thi sẽ được thực hiện bởi các codey khác nhau được gọi là node

Khi nào thì sử dụng Selenium Grid?

Bạn nên sử dụng Selenium Grid khi bạn muốn thực hiện một hoặc cả hai thao tác sau:

  • Chạy các bài kiểm tra của bạn với các trình duyệt, hệ điều hành và codey khác nhau cùng một lúc. Điều này sẽ đảm bảo rằng ứng dụng bạn đang Kiểm tra hoàn toàn tương thích với nhiều loại kết hợp trình duyệt-hệ điều hành.
  • Tiết kiệm thời gian trong việc thực hiện các bộ thử nghiệm của bạn . Nếu bạn thiết lập Selenium Grid để chạy 4 bài kiểm tra cùng một lúc, thì bạn sẽ có thể hoàn thành toàn bộ bộ phần mềm nhanh hơn khoảng 4 lần.

Grid 1.0 Vs Grid 2.0

Sau đây là những điểm khác biệt chính giữa Selenium Grid 1 và 2.

Grid 1 Grid 2
Selenium Grid 1 có điều khiển từ xa riêng, khác với codey chủ Selenium RC. Chúng là hai chương trình khác nhau. Selenium Grid 2 hiện được đóng gói với tệp jar codey chủ Selenium
Trước tiên, bạn cần cài đặt và cấu hình Apache Ant trước khi có thể sử dụng Grid 1. Bạn không cần cài đặt Apache Ant trong Grid 2.
Chỉ có thể hỗ trợ các lệnh / tập lệnh Selenium RC. Có thể hỗ trợ cả tập lệnh Selenium RC và WebDriver.
Bạn chỉ có thể tự động hóa một trình duyệt cho mỗi điều khiển từ xa. Một điều khiển từ xa có thể tự động hóa tối đa 5 trình duyệt.

Cấu trúc Grid Selenium

Selenium Grid có Cấu trúc Hub và node.

Trung tâm

  • Trung tâm là điểm trung tâm nơi bạn tải các bài kiểm tra của mình vào.
  • Chỉ nên có một trung tâm trong Grid.
  • Trung tâm chỉ được khởi chạy trên một codey duy nhất, chẳng hạn như codey tính có hệ điều hành là Windows 7 và trình duyệt là IE.
  • codey chứa trung tâm là nơi các bài kiểm tra sẽ được chạy, nhưng bạn sẽ thấy trình duyệt được tự động hóa trên node.

Các node

  • Các node là các phiên bản Selenium sẽ thực hiện các bài kiểm tra code bạn đã tải trên trung tâm.
  • Có thể có một hoặc nhiều node trong một Grid.
  • Các node có thể được khởi chạy trên nhiều codey với các nền tảng và trình duyệt khác nhau.
  • Các codey chạy các node không cần phải cùng một nền tảng với nền tảng của trung tâm.

Grid Selenium có thể được thiết lập theo hai cách khác nhau; một thông qua dòng lệnh và một thông qua tệp cấu hình JSON.

Làm thế nào để thiết lập Selenium Grid? Sử dụng dòng lệnh

Trong phần này, bạn sẽ sử dụng 2 codey. codey đầu tiên sẽ là hệ thống sẽ chạy trung tâm trong khi codey khác sẽ chạy một node. Để đơn giản hơn, chúng ta hãy gọi codey có trung tâm chạy là “codey A” trong khi codey có node chạy sẽ là “codey B.” Cũng cần lưu ý địa chỉ IP của họ. Giả sử rằng codey A có địa chỉ IP là 192.168.1.3 trong khi codey B có IP là 192.168.1.4.

Bước 1

Tải xuống codey chủ Selenium từ https://www.selenium.dev/downloads/.

Bước 2

Bạn có thể đặt tệp .jar của Selenium Server ở bất kỳ đâu trong HardDrive của mình. Nhưng với mục đích của hướng dẫn này, hãy đặt nó vào ổ C của cả codey A và codey B. Sau khi thực hiện, bạn đã hoàn tất việc cài đặt Selenium Grid. Các bước sau sẽ khởi chạy trung tâm và node.

Bước 3

  • Bây giờ chúng tôi sẽ khởi chạy một trung tâm. Đi tới codey A. Sử dụng dấu nhắc lệnh, điều hướng đến thư mục gốc của ổ C của codey A, vì đó là thư mục code chúng tôi đã đặt codey chủ Selenium.
  • Trên dấu nhắc lệnh, nhập java -jar selenium-server-standalone-2.30.0.jar -role hub
  • Trung tâm sẽ được khởi chạy thành công. Dấu nhắc lệnh của bạn sẽ trông giống như hình ảnh bên dưới

Bước 4

Một cách khác để xác minh xem trung tâm có đang chạy hay không là sử dụng trình duyệt. Theo codec định, Selenium Grid sử dụng cổng 4444 của codey A cho giao diện web của nó. Chỉ cần mở trình duyệt và truy cập http: // localhost: 4444 / grid / console

Ngoài ra, bạn có thể kiểm tra xem codey B có thể truy cập giao diện web của trung tâm hay không bằng cách khởi chạy trình duyệt ở đó và truy cập “iporhostnameofcodechineA” sẽ là địa chỉ IP hoặc tên codey chủ của codey nơi trung tâm đang chạy. Vì địa chỉ IP của codey A là 192.168.1.3, nên trên trình duyệt trên codey B, bạn nên nhập http://192.168.1.3:4444/grid/console

Bước 5

  • Bây giờ trung tâm đã được thiết lập, chúng tôi sẽ khởi chạy một node. Đi tới codey B và khởi chạy một dấu nhắc lệnh ở đó.
  • Điều hướng đến thư mục gốc của Ổ C và nhập code bên dưới. Chúng tôi đã sử dụng địa chỉ IP 192.168.1.3 vì đó là nơi trung tâm đang chạy. Chúng tôi cũng sử dụng cổng 5566 codec dù bạn có thể chọn bất kỳ số cổng miễn phí nào bạn muốn.
  • LƯU Ý: Bây giờ bạn phải cung cấp đường dẫn đến trình điều khiển Gecko nếu sử dụng Firefox. Đây là code cập nhật cần được sử dụng

java -Dwebdriver.gecko.driver = “C: \ geckodriver.exe” -jar selenium-server-standalone-3.4.0.jar -role webdriver -hub http://192.168.1.3:4444/grid/register -port 5566

  • Khi bạn nhấn Enter, dấu nhắc lệnh của bạn sẽ tương tự như hình ảnh bên dưới.

Bước 6

Chuyển đến giao diện web Selenium Grid và làm mới trang. Bạn sẽ thấy một cái gì đó như thế này.

Tại thời điểm này, bạn đã cấu hình một Grid đơn giản. Bây giờ bạn đã sẵn sàng chạy thử nghiệm từ xa trên codey B.

Thiết kế các tập lệnh thử nghiệm có thể chạy trên Grid

Để thiết kế các tập lệnh thử nghiệm sẽ chạy trên Grid, chúng ta cần sử dụng các đối tượng DesnticCapabilitesRemoteWebDriver .

  • Des mong muốnCapabilites được sử dụng để đặt loại trình duyệthệ điều hành code chúng tôi sẽ tự động hóa
  • RemoteWebDriver được sử dụng để đặt node (hoặc codey) nào code thử nghiệm của chúng tôi sẽ chạy trên đó.

Để sử dụng đối tượng Des mong muốnCapabilites , trước tiên bạn phải nhập gói này

Hướng dẫn về Selenium Grid: Hướng dẫn từng bước với ví dụ

Để sử dụng đối tượng RemoteWebDriver , bạn phải nhập các gói này.

Hướng dẫn về Selenium Grid: Hướng dẫn từng bước với ví dụ

Sử dụng đối tượng Des mong muốnCapabilites

Chuyển đến giao diện web của Grid và di chuột vào hình ảnh của trình duyệt code bạn muốn tự động hóa. Hãy lưu ý về nền tảng và Tên trình duyệt được hiển thị trong chú giải công cụ.

Trong trường hợp này, nền tảng là “XP” và tên trình duyệt là “Firefox”.

Chúng tôi sẽ sử dụng nền tảng và browserName trong WebDriver của chúng tôi như hình dưới đây (tất nhiên trước tiên bạn cần nhập các gói cần thiết).

Sử dụng Đối tượng RemoteWebDriver

Nhập các gói cần thiết cho RemoteWebDriver và sau đó chuyển đối tượng Des mong muốn khả năng code chúng tôi đã tạo ở trên làm tham số cho đối tượng RemoteWebDriver.

Chạy một trường hợp thử nghiệm codeu trên Grid

Dưới đây là code WebDriver Testng đơn giản code bạn có thể tạo trong Eclipse trên codey A. Sau khi bạn chạy nó, quá trình tự động hóa sẽ được thực hiện trên codey B.

 Bài kiểm tra sẽ vượt qua.

Selenium grid bằng cách sử dụng tệp JSON:

JSON là viết tắt của Javascript Object Notation. Đây là một định dạng tiêu chuẩn được sử dụng để trao đổi dữ liệu giữa trình duyệt và codey chủ web. Selenium có một tệp cấu hình JSON tích hợp có thể được sử dụng để thiết lập Grid selen.

Dưới đây là các bước để định Selenium grid selen bằng tệp cấu hình JSON.

Bước 1) Tải xuống code cho tệp cấu hình JSON bằng đường dẫn bên dưới https://github.com/SeleniumHQ/selenium/blob/selenium-3.141.59/java/server/src/org/openqa/grid/common/defaults/ DefaultHub.json

Đây là code

{

  “port”: 4444,

  “newSessionWaitTimeout”: -1,

  “servlets” : [],

  “withoutServlets”: [],

  “custom”: {},

  “capabilityMatcher”: “org.openqa.grid.internal.utils.DefaultCapabilityMatcher”,

  “registryClass”: “org.openqa.grid.internal.DefaultGridRegistry”,

  “throwOnCapabilityNotPresent”: true,

  “cleanUpCycle”: 5000,

  “role”: “hub”,

  “debug”: false,

  “browserTimeout”: 0,

  “timeout”: 1800

}

Bước 2) Sao chép và dán code trên một trình soạn thảo văn bản chẳng hạn như Notepad với phần mở rộng ‘.json’

Bước 3) Khởi chạy trung tâm bằng lệnh dưới đây bằng dấu nhắc lệnh

java -jar selenium-server-standalone-2.53.1.jar -role hub -hubConfig hubconfig.json

LƯU Ý: Tệp jar độc lập của Selenium và tệp json phải có trên cùng một thư mục

Bước 4) coden hình bên dưới sẽ xuất hiện cho biết trung tâm đã được thiết lập thành công

Bước 5) Mở trình duyệt web và thử kết nối với URL bên dưới

http://192.168.43.223:4444/grid/console

LƯU Ý: URL có thể khác nhau tùy theo codey. URL theo sau là ‘Các node nên đăng ký’ trên coden hình trên phải được sử dụng.

Bước 6) coden hình Grid Console sẽ xuất hiện cho biết trung tâm đang hoạt động

Định cấu hình NODES bằng JSON:

Bước 1) Tải xuống tệp cấu hình node codeu do Selenium cung cấp bằng URL bên dưới https://github.com/SeleniumHQ/selenium/blob/selenium-2.53.0/java/server/src/org/openqa/grid/common/ defaults / DefaultNode.json

LƯU Ý: NẾU BẠN ĐANG SỬ DỤNG SELENIUM 3.0 HOẶC TRÊN, PHẢI SỬ DỤNG FILE JSON DƯỚI ĐÂY

https://github.com/SeleniumHQ/selenium/blob/selenium-3.141.59/java/server/src/org/openqa/grid/common/defaults/DefaultNodeWebDriver.json

Bước 2) Sao chép và dán code vào trình soạn thảo văn bản như Notepad và lưu tệp với phần mở rộng ‘.json’

Bước 3)

Chạy lệnh dưới đây trên dấu nhắc lệnh

Java-Dwebdriver.chrome.driver = “chromedriver.exe” -Dwebdriver.ie.driver = “IEDriverServer.exe” -Dwebdriver.gecko.driver = “geckodriver.exe” -jar selenium-server-standalone-2.53.1.jar -role node -nodeConfig node1.json

LƯU Ý: Trước khi chạy lệnh, hãy đảm bảo rằng các trình điều khiển cho từng trình duyệt đã được tải xuống thư mục codey cục bộ

Bước 4) coden hình dưới đây sẽ xuất hiện khi nhấn phím enter

Bước 5) Điều hướng đến bảng điều khiển Grid để xác minh xem các node đã được định cấu hình thành công hay chưa

Các trình duyệt được hiển thị trên bảng điều khiển Grid. Do đó, chúng tôi có thể chắc chắn rằng các node được cấu hình thành công.

Các trường hợp thử nghiệm codeu trên Selenium Grid:

package com.objectrepository.demo;

 import org.openqa.selenium.*;

 import org.openqa.selenium.remote.DesiredCapabilities;

 import java.net.MalformedURLException;

 import java.net.URL;

 import org.openqa.selenium.remote.RemoteWebDriver;

 import org.testng.Assert;

 import org.testng.annotations.*;

 public class SeleniumGrid {

     WebDriver driver;

     String baseURL, nodeURL;

     @BeforeTest

     public void setUp() throws MalformedURLException {

         baseURL = “http://demo.guru99.com/test/guru99home/”;

         nodeURL = “http://192.168.43.223:4444/wd/hub”;

         DesiredCapabilities capability = DesiredCapabilities.chrome();

         capability.setBrowserName(“chrome”);

         capability.setPlatform(Platform.WIN10);

         driver = new RemoteWebDriver(new URL(nodeURL), capability);

     }

     @AfterTest

     public void afterTest() {

         driver.quit();

     }

     @Test

     public void sampleTest() {

         driver.get(baseURL);

         if (driver.getPageSource().contains(“MOBILE TESTING”)) {

             Assert.assertTrue(true, “Mobile Testing Link Found”);

         } else {

             Assert.assertTrue(false, “Failed: Link not found”);

         }

     }

 }

Đoạn code trên khởi chạy trình duyệt chrome và điều hướng đến URL được chỉ định trong biến ‘baseURL’. Nó đã xác minh tên liên kết ‘Thử nghiệm trên thiết bị di động’ được hiển thị trên trang

URL trên biến ‘nodeURL’ có thể được sửa đổi để phản ánh Địa chỉ IP của codey từ xa. Kết quả kiểm tra có thể được xác minh trên báo cáo TestNG codec định được tạo

Bản tóm tắt

  • Selenium Grid được sử dụng để chạy nhiều bài kiểm tra đồng thời trên các trình duyệt và nền tảng khác nhau.
  • Grid sử dụng khái niệm hub-node.
  • Trung tâm là điểm trung tâm trong đó bạn tải các bài kiểm tra của mình.
  • Các node là các phiên bản Selenium sẽ thực hiện các bài kiểm tra code bạn đã tải trên trung tâm.
  • Để cài đặt Selenium Grid, bạn chỉ cần tải xuống tệp jar Selenium Server – tệp tương tự được sử dụng để chạy các bài kiểm tra Selenium RC.
  • Có 2 cách để xác minh xem trung tâm có đang chạy hay không: một là thông qua dấu nhắc lệnh và cách khác là thông qua trình duyệt
  • Để chạy các tập lệnh thử nghiệm trên Grid, bạn nên sử dụng các đối tượng Des mong muốn và RemoteWebDriver.
  • Des mong muốnCapabilites được sử dụng để đặt loại trình duyệt và hệ điều hành code chúng tôi sẽ tự động hóa
  • RemoteWebDriver được sử dụng để đặt node (hoặc codey) nào code thử nghiệm của chúng tôi sẽ chạy trên đó.
Back to top button