Что такое кросс-браузерное тестирование?
Кросс-браузерное тестирование — это тип функционального теста, который проверяет, работает ли ваше веб-приложение в разных браузерах.
Зачем нам нужно кросс-браузерное тестирование?
Веб-приложения полностью отличаются от приложений Windows. Конечное пользователь может открыть веб-приложение в любом браузере. Например, некоторые люди предпочитают открывать https://twitter.com в браузере Firefox, в то время как другие могут использовать браузер Chrome или IE .
На диаграмме ниже вы можете заметить, что в IE поле входа в Twitter не показывает кривую на всех углах, но мы можем видеть это в браузере Chrome.
Поэтому нам нужно убедиться, что веб-приложение будет работать должным образом во всех популярных браузерах, чтобы больше людей могли получить к нему доступ и использовать его.
Этот мотив может быть реализован с помощью кросс-браузерного тестирования продукта.
Причина Кросс-браузер Проблемы
- Несоответствие размера шрифта в разных браузерах.
- Реализация JavaScript может быть разной.
- CSS, HTML проверка различий может быть там.
- Некоторые браузеры до сих пор не поддерживают HTML5.
- Выравнивание страницы и размер div.
- Ориентация изображения.
-
Несовместимость браузера с ОС. И т.п.
Как выполнить кросс-браузерное тестирование
Если мы используем Selenium WebDriver, мы можем автоматизировать тестовые случаи, используя браузеры Internet Explorer, FireFox, Chrome, Safari.
Для одновременного выполнения тестовых случаев с разными браузерами на одном компьютере мы можем интегрировать среду Testng с Selenium WebDriver.
Ваш testing.xml будет выглядеть так,
Этот testing.xml будет сопоставлен с контрольным примером, который будет выглядеть так
Здесь, поскольку в файле testing.xml есть два тега Test («ChromeTest», «FirefoxTest»), этот тестовый пример будет выполнен два раза для 2 разных браузеров.
Первый тест «ChromeTest» передаст значение параметра «browser» как «chrome», поэтому ChromeDriver будет выполнен. Этот тестовый пример будет работать в браузере Chrome.
Второй тест «FirefoxTest» передаст значение параметра «browser» как «Firefox», так что будет выполнен FirefoxDriver. Этот тестовый пример будет запущен в браузере FireFox.
Полный код:
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.manage().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")); //Fill user name userName.sendKeys("guru99"); //Find password 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>
ПРИМЕЧАНИЕ. Для запуска теста щелкните правой кнопкой мыши файл test.xml, выберите «Запуск от имени» и нажмите «TestNG»
Резюме
- Кросс-браузерное тестирование — это метод тестирования веб-приложений с различными веб-браузерами.
- Selenium может поддерживать различные типы браузеров для автоматизации.
- Selenium может быть интегрирован с TestNG для проведения мультибраузерного тестирования.
- Из параметров в testing.xml мы можем передать имя браузера, а в тестовом примере мы можем создать ссылку на WebDriver соответственно.
Примечание . Данная программа была построена и протестирована на Selen 3.0.1, Chrome 56.0.2924.87, Firefox 47.0.2 и Microsoft Edge 14.14393. Если программы выдают ошибку, обновите драйвер
Загрузите файлы проекта Selenium для демонстрации в этом уроке