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