Що таке крос-браузерне тестування?
Перехресне тестування браузера - це тип функціонального тесту для перевірки того, чи працює веб-програма належним чином у різних браузерах.
Навіщо нам потрібне перехресне браузерне тестування?
Веб-програми повністю відрізняються від програм 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 буде виглядати так,
Цей test.xml відобразиться у тестовому випадку, який буде виглядати так
Оскільки тест.xml має два теги тесту ('ChromeTest', 'FirefoxTest'), цей тестовий процес буде виконаний двічі для 2 різних браузерів.
Перший тест "ChromeTest" передасть значення параметра "браузер" як "chrome", тому буде запущено ChromeDriver. Цей тестовий приклад буде запущений у браузері Chrome.
Другий тест "FirefoxTest" передасть значення параметра "браузер" як "Firefox", тому FirefoxDriver буде виконано. Цей тестовий приклад працюватиме у браузері FireFox.
Повний код:
Guru99CrossBrowserScript.java
пакет паралельний тест;імпортувати java.util.concurrent.TimeUnit;імпорт org.openqa.selenium.By;імпорт org.openqa.selenium.WebDriver;імпорт org.openqa.selenium.WebElement;імпорт org.openqa.selenium.chrome.ChromeDriver;імпорт org.openqa.selenium.edge.EdgeDriver;імпорт org.openqa.selenium.firefox.FirefoxDriver;імпорт org.testng.annotations.BeforeTest;імпорт org.testng.annotations.Parameters;імпорт org.testng.annotations.Test;відкритий клас CrossBrowserScript {Драйвер WebDriver;/ *** Ця функція буде виконуватися перед кожним тестом тесту в testng.xml* браузер @param* @throws Виняток* /@BeforeTest@Parameters ("браузер")public void setup (рядок браузера) видає виняток {// Перевірте, чи параметр, переданий з TestNG, є "firefox"if (browser.equalsIgnoreCase ("firefox")) {// створення екземпляра firefoxSystem.setProperty ("webdriver.gecko.driver", ". \\ geckodriver.exe");драйвер = новий FirefoxDriver ();}// Перевірка, чи передано параметр як "хром"else if (browser.equalsIgnoreCase ("chrome")) {// встановити шлях до chromedriver.exeSystem.setProperty ("webdriver.chrome.driver", ". \\ chromedriver.exe");// створення екземпляра chromeдрайвер = новий ChromeDriver ();}// Перевірка, чи передано параметр як 'Edge'else if (browser.equalsIgnoreCase ("Edge")) {// встановити шлях до Edge.exeSystem.setProperty ("webdriver.edge.driver", ". \\ MicrosoftWebDriver.exe");// створюємо екземпляр Edgeдрайвер = новий EdgeDriver ();}ще {// Якщо жоден браузер не передав виключеннявикинути новий виняток ("Браузер неправильний");}driver.manage (). timeouts (). неявноWait (10, TimeUnit.SECONDS);}@ Тестpublic void testParameterWithXML () кидає InterruptedException {driver.get ("http://demo.guru99.com/V4/");// Знайти ім'я користувачаWebElement userName = driver.findElement (By.name ("uid"));// Заповнити ім'я користувачаuserName.sendKeys ("guru99");// Знайти парольПароль WebElement = driver.findElement (By.name ("пароль"));// Введіть парольpassword.sendKeys ("guru99");}}
testing.xml
xml version = "1.0" encoding = "UTF-8"?><параметр name = "browser" value = "Chrome" /><класи><ім'я класу = "паралельний тест.CrossBrowserScript"> <параметр name = "browser" value = "Firefox" /><класи><ім'я класу = "паралельний тест.CrossBrowserScript"> <параметр name = "browser" value = "Edge" /><класи><ім'я класу = "паралельний тест.CrossBrowserScript">
ПРИМІТКА. Щоб запустити тест, клацніть правою кнопкою миші на testing.xml, виберіть Запустити як і натисніть TestNG
Резюме
- Крос-браузерне тестування - це техніка тестування веб-додатків за допомогою різних веб-браузерів.
- Селен може підтримувати різні типи браузерів для автоматизації.
- Селен може бути інтегрований з TestNG для проведення багатокористувацького тестування.
- З параметрів у testing.xml ми можемо передати ім'я браузера, а в тестовому випадку ми можемо створити посилання на WebDriver відповідно.
Примітка: Дана програма була побудована та протестована на селені 3.0.1, Chrome 56.0.2924.87, Firefox 47.0.2 та Microsoft Edge 14.14393. Якщо програми видають помилку, оновіть драйвер
Завантажте файли проекту Selenium для демонстрації у цьому посібнику