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