Cross Browser Testing dử dụng Selenium WebDriver

Cross Browser Testing là gì?

Cross Browser Testing là một loại kiểm tra chức năng để kiểm tra xem ứng dụng web của bạn có hoạt động như mong đợi trong các trình duyệt khác nhau hay không.

Tại sao chúng ta cần Cross Browser Testing?

Các ứng dụng dựa trên web hoàn toàn khác với các ứng dụng Windows. Người dùng cuối có thể mở ứng dụng web trong bất kỳ trình duyệt nào. Ví dụ: một số người thích mở https://twitter.com trong trình duyệt Firefox, trong khi những người khác có thể sử dụng trình duyệt Chrome hoặc IE .

Trong sơ đồ bên dưới, bạn có thể thấy rằng trong IE , hộp đăng nhập của Twitter không hiển thị đường cong ở tất cả các góc, nhưng chúng ta có thể thấy nó trong trình duyệt Chrome.

Vì vậy, chúng ta cần đảm bảo rằng ứng dụng web sẽ hoạt động như mong đợi trên tất cả các trình duyệt phổ biến để nhiều người có thể truy cập và sử dụng nó.

Động cơ này có thể được thực hiện với Thử nghiệm Cross Browser của sản phẩm.

Lý do các vấn đề về Cross Browser

  1. Kích thước phông chữ không khớp trong các trình duyệt khác nhau.
  2. Việc triển khai JavaScript có thể khác.
  3. Sự khác biệt về xác thực CSS, HTML có thể ở đó.
  4. Một số trình duyệt vẫn không hỗ trợ HTML5.
  5. Căn chỉnh trang và kích thước div.
  6. Định hướng hình ảnh.
  7. Trình duyệt không tương thích với hệ điều hành. Vân vân.

Cách thực hiện Cross Browser Testing

Nếu chúng tôi đang sử dụng Selenium WebDriver, chúng tôi có thể tự động hóa các trường hợp thử nghiệm bằng trình duyệt Internet Explorer, FireFox, Chrome, Safari.

Để thực thi các trường hợp kiểm thử với các trình duyệt khác nhau trong cùng một codey cùng một lúc, chúng ta có thể tích hợp Testng framework Testng với Selenium WebDriver.

Test.xml của bạn sẽ trông giống như vậy,

Testing.xml này sẽ ánh xạ với Test Case trông giống như vậy

Ở đây bởi vì testing.xml có hai thẻ Kiểm tra (‘ChromeTest’, ‘FirefoxTest’), nên trường hợp kiểm tra này sẽ thực thi hai lần cho 2 trình duyệt khác nhau.

Thử nghiệm đầu tiên ‘ChromeTest’ sẽ chuyển giá trị của tham số ‘browser’ là ‘chrome’ để ChromeDriver sẽ được thực thi. Trường hợp thử nghiệm này sẽ chạy trên trình duyệt Chrome.

Thử nghiệm thứ hai ‘FirefoxTest’ sẽ chuyển giá trị của tham số ‘browser’ là ‘Firefox’ để FirefoxDriver sẽ được thực thi. Trường hợp thử nghiệm này sẽ chạy trên trình duyệt FireFox.

Hoàn thành code:

Guru99CrossBrowserScript.java

package parallelTest;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.edge.EdgeDriver;

import org.openqa.selenium.firefox.FirefoxDriver;

import org.testng.annotations.BeforeTest;

import org.testng.annotations.Parameters;

import org.testng.annotations.Test;

public class CrossBrowserScript {

WebDriver driver;

/**

* This function will execute before each Test tag in testng.xml

* @param browser

* @throws Exception

*/

@BeforeTest

@Parameters(“browser”)

public void setup(String browser) throws Exception{

//Check if parameter passed from TestNG is ‘firefox’

if(browser.equalsIgnoreCase(“firefox”)){

//create firefox instance

System.setProperty(“webdriver.gecko.driver”, “.\\geckodriver.exe”);

driver = new FirefoxDriver();

}

//Check if parameter passed as ‘chrome’

else if(browser.equalsIgnoreCase(“chrome”)){

//set path to chromedriver.exe

System.setProperty(“webdriver.chrome.driver”,”.\\chromedriver.exe”);

//create chrome instance

driver = new ChromeDriver();

}

//Check if parameter passed as ‘Edge’

else if(browser.equalsIgnoreCase(“Edge”)){

//set path to Edge.exe

System.setProperty(“webdriver.edge.driver”,”.\\MicrosoftWebDriver.exe”);

//create Edge instance

driver = new EdgeDriver();

}

else{

//If no browser passed throw exception

throw new Exception(“Browser is not correct”);

}

driver.codenage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

}

@Test

public void testParameterWithXML() throws InterruptedException{

driver.get(“http://demo.guru99.com/V4/”);

//Find user name

WebElement userName = driver.findElement(By.name(“uid”));

userName.sendKeys(“guru99”);

WebElement password = driver.findElement(By.name(“password”));

//Fill password

password.sendKeys(“guru99”);

}

}

testing.xml

<?xml version=”1.0″ encoding=”UTF-8″?>

<!DOCTYPE suite SYSTEM “http://testng.org/testng-1.0.dtd”>

<suite name=”TestSuite” thread-count=”2″ parallel=”tests” >

<test name=”ChromeTest”>

<parameter name=”browser” value=”Chrome” />

<classes>

<class name=”parallelTest.CrossBrowserScript”>

</class>

</classes>

</test>

<test name=”FirefoxTest”>

<parameter name=”browser” value=”Firefox” />

<classes>

<class name=”parallelTest.CrossBrowserScript”>

</class>

</classes>

</test>

<test name=”EdgeTest”>

<parameter name=”browser” value=”Edge” />

<classes>

<class name=”parallelTest.CrossBrowserScript”>

</class>

</classes>

</test>

</suite>

LƯU Ý: Để chạy thử nghiệm, Nhấp chuột phải vào testing.xml, Chọn Run As và Nhấp vào TestNG

Bản tóm tắt

  1. Cross Browser Testing là một kỹ thuật để kiểm tra ứng dụng web với các trình duyệt web khác nhau.
  2. Selenium có thể hỗ trợ các loại trình duyệt khác nhau để tự động hóa.
  3. Selenium có thể được tích hợp với TestNG để thực hiện Kiểm tra Đa trình duyệt.
  4. Từ các tham số trong testing.xml, chúng ta có thể chuyển tên trình duyệt và trong trường hợp thử nghiệm, chúng ta có thể tạo tham chiếu WebDriver cho phù hợp.

Lưu ý: Chương trình nhất định được xây dựng và thử nghiệm trên selen 3.0.1, Chrome 56.0.2924.87, Firefox 47.0.2 & Microsoft Edge 14.14393. Nếu chương trình báo lỗi, vui lòng cập nhật trình điều khiển

Tải xuống Tệp dự án Selenium cho Bản trình diễn trong Hướng dẫn này

Back to top button