c) Dịch một kịch bản kiểm thử Selenium IDE thành kịch bản kiểm thử Selenium RC.
3.5 Selenium Grid
Selenium Grid phân phối các trường hợp kiểm thử trên nhiều máy tính vật lý hay máy ảo để ta có thể chạy chúng song song, cắt giảm thời gian cần thiết cho chạy thử nghiệm. Chạy kiểm thử trên Selenium Grid cho tốc độ nhanh đáng kể, thông tin phản hồi nhanh chóng và chính xác.
Để chạy thử nghiệm song song đòi hỏi hai điều: Một là cơ sở hạ tầng để phân phối các trường hợp kiểm thử. Hai là khuôn khổ sẽ chạy các thử nghiệm song song trong cơ sở hạ tầng nhất định.
Với Selenium Grid, cho phép ta dễ dàng chạy nhiều thử nghiệm song song trên nhiều nút trong một môi trường không đồng nhất (Chạy thử nghiệm song song trên nhiều hệ điều hành và nhiều trình duyệt mà hệ điều hành đó hỗ trợ). Đây là một ví dụ kiến trúc Selenium Grid có khả năng chạy thử nghiệm trên hệ điều hành Linux, Windows, Mac, IOS, nền tảng Android:
Hình 3- : Mô hình công cụ Selenium Grid.
Mô hình selenium grid bao gồm một trung tâm (còn gọi là Hub) và một hay nhiều nút (Node).
Cài đặt và cấu hình Selenium Grid
Bước 1: Download Selenium server. Cách download Selenium server đã được trình bày ở mục 3.3
Bước 2: Bắt đầu với một trung tâm (Hub)
Để bắt đầu Selenium server với vai trò là một trung tâm với các thông số mặc định, vào cmd chạy lệnh: Java -jar selenium-server-standalone-2.39.0.jar -role hub
Hình 3- : Selenium server với vai trò là một hub.
Khi chúng ta khởi động Selenium server trong vai trò là một hub, nó bắt đầu lắng nghe tới các nút và kiểm tra trên cổng 4444.Vào trình duyệt của máy trung tâm gõ: http://loccalhost:4444/grid/console , nó sẽ hiển thị những thông tin sau trong trình duyệt.
Hình 3- : Phân phối thử nghiệm với selenim grid_1.
Sau khi nhấp vào liên kết xem cấu hình, nó sẽ hiển thị chi tiết cấu hình của một hub như thể hiện trong hình dưới đây.
Hình 3- : Phân phối thử nghiệm với selenim grid_2.
Bước 3: Bắt đầu với một nút (Node)
Node là các máy đăng ký với máy trung tâm để chạy các testscript. Thiết lập các máy cùng dải địa chỉ IP với máy trung tâm, vào cmd của máy thiết lập node gõ lệnh:
Java -jar selenium-server-standalone-2.39.0.jar -role node hub http://192.168.1.2:4444/grid/register
Hình 3- : Bắt đầu với một nút
Bước 4: Thiết kế test script để chạy với Selenium Grid Ví dụ kiểm tra tiêu đề trang http://www.google.com.vn/.
TestScript Selenium Webdriver chạy trên trình duyệt firefox, hệ điều hành Win8
package com.example.tests; import org.testng.annotations.Test; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import java.io.File; import java.io.IOException; import java.net.URL; import org.apache.commons.io.FileUtils; import org.openqa.selenium.By; import org.openqa.selenium.OutputType; import org.openqa.selenium.Platform; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.remote.Augmenter; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.RemoteWebDriver; public class SampleTestCaseonGrid {
private WebDriver driver; @BeforeClass
public void setUp() throws Exception {
DesiredCapabilities caps = new DesiredCapabilities(); String NodeUrl = "http://192.168.1.2:5555/wd/hub"; caps.setBrowserName("firefox");
caps.setPlatform(Platform.VISTA);
driver = new RemoteWebDriver(new URL(NodeUrl),caps); }
@Test
public void simpleTest() throws Exception { driver.get("http://www.google.com");
System.out.println("Page title is: " + driver.getTitle()); WebElement element = driver.findElement(By.name("q")); element.sendKeys("google");
element.submit(); }
@AfterClass
public void tearDown() throws Exception { driver.quit();
} }
Hình 3- : TestScript chạy trên Selenium Grid.
Kết quả TestScript sử dụng công cụ TestNG để xuất ra báo cáo
Hình 3- : Kết quả chạy TestScript trên Selenium Grid