Kiểm tra trình duyệt chéo bằng cách sử dụng Selenium webdriver
Kiểm tra trình duyệt chéo bằng cách sử dụng Selenium
Kiểm tra trình duyệt chéo là một loại thử nghiệm 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 Kiểm tra trình duyệt chéo?
Các ứng dụng dựa trên web hoàn toàn khác với Windows các ứng dụng. Người dùng cuối có thể mở một ứ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 in Firefox trình duyệt, trong khi những người khác có thể được sử dụng Trình duyệt Chrome or IE.
Trong sơ đồ bên dưới, bạn có thể quan sát thấy điều đó trong IE, hộp đăng nhập của Twitter không hiển thị đường cong ở mọi góc, nhưng chúng ta có thể thấy điều đó 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 hơn.
Động cơ này có thể được thực hiện với Cross Browser Kiểm tra của sản phẩm.
Lý do xảy ra sự cố trên trình duyệt chéo
- Kích thước phông chữ không khớp trong các trình duyệt khác nhau.
- JavaViệc triển khai tập lệnh có thể khác nhau.
- Có thể có sự khác biệt về xác thực CSS, HTML.
- Một số trình duyệt vẫn chưa hỗ trợ HTML5.
- Căn chỉnh trang và kích thước div.
- Định hướng hình ảnh.
- 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 kiểm tra trình duyệt chéo
Nếu chúng tôi đang sử dụng Selenium WebDriver, chúng ta có thể tự động hóa các trường hợp thử nghiệm bằng cách sử dụng Internet Explorer, FireFox, trình duyệt Chrome, Safari.
Để thực thi các trường hợp thử nghiệm với các trình duyệt khác nhau trên cùng một máy, chúng ta có thể tích hợp TestNG khuôn khổ với Selenium WebDriver.
Tệp test.xml của bạn sẽ trông như thế này,
Tệp test.xml này sẽ ánh xạ với Trường hợp thử nghiệm nó sẽ trông như thế
Ở đây vì tệp testing.xml có hai thẻ Kiểm tra ('ChromeTest','FirefoxTest'), trường hợp thử nghiệm 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ố 'trình duyệt' dưới dạng '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.
Bài kiểm tra thứ hai 'FirefoxTest' sẽ chuyển giá trị của tham số 'trình duyệt' dưới dạng 'Firefox' Vì thế FirefoxTrình điều khiển sẽ được thực thi. Trường hợp thử nghiệm này sẽ chạy trên FireFox trình duyệt.
Guru99CrossBrowserScript.java
Hoàn thành Code:
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.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
}
@Test
public void testParameterWithXML() throws InterruptedException{
driver.get("https://demo.guru99.com/V4/");
//Find user name
WebElement userName = driver.findElement(By.name("uid"));
//Fill user name
userName.sendKeys("guru99");
//Find password
WebElement password = driver.findElement(By.name("password"));
//Fill password
password.sendKeys("guru99");
}
}
thử nghiệm.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 thử nghiệm.xml, Chọn Chạy dưới dạng và nhấp vào TestNG
Tổng kết
- Kiểm tra trình duyệt chéo 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.
- Selenium có thể hỗ trợ các loại khác nhau công cụ kiểm tra trình duyệt chéo cho tự động hóa.
- Selenium có thể được tích hợp với TestNG để thực hiện Kiểm tra nhiều trình duyệt.
- 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 tương ứng.
Lưu ý: Chương trình đã cho được xây dựng và thử nghiệm trên Selenium 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 driver





