Какво е тестване на кръстосани браузъри?
Кръстосаното тестване на браузъра е вид функционален тест за проверка дали вашето уеб приложение работи както се очаква в различните браузъри.
Защо се нуждаем от тестване на кръстосани браузъри?
Уеб-базираните приложения са напълно различни от приложенията на Windows. Уеб приложение може да се отвори във всеки браузър от крайния потребител. Например, някои хора предпочитат да отворят https://twitter.com в браузъра Firefox, докато други могат да използват браузър Chrome или IE .
На диаграмата по-долу можете да забележите, че в IE полето за вход на Twitter не показва крива на всички ъгли, но ние можем да го видим в браузъра Chrome.
Затова трябва да гарантираме, че уеб приложението ще работи както се очаква във всички популярни браузъри, така че повече хора да имат достъп до него и да го използват.
Този мотив може да бъде изпълнен с тестване на продукта в различни браузъри.
Причина Проблеми с различни браузъри
- Несъответствие на размера на шрифта в различни браузъри.
- Внедряването на JavaScript може да бъде различно.
- Може да има CSS, HTML валидация разлика.
- Някои браузъри все още не поддържат HTML5.
- Подравняване на страницата и размер на div.
- Ориентация на изображението.
- Несъвместимост на браузъра с OS. И т.н.
Как да извършите тестване на кръстосани браузъри
Ако използваме Selenium WebDriver, можем да автоматизираме тестови случаи, като използваме браузърите Internet Explorer, FireFox, Chrome, Safari.
За да изпълняваме тестови случаи с различни браузъри в една и съща машина едновременно, можем да интегрираме Testng framework с Selenium WebDriver.
Вашият testing.xml ще изглежда така,
Този test.xml ще се свърже с тестовия случай, който ще изглежда така
Тук, тъй като testing.xml има два тестови маркера ('ChromeTest', 'FirefoxTest'), този тестов случай ще се изпълни два пъти за 2 различни браузъра.
Първият тест „ChromeTest“ ще предаде стойността на параметъра „браузър“ като „хром“, така че 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 ("браузър")настройка на публична невалидност (браузър на низове) хвърля изключение {// Проверяваме дали параметърът, предаден от TestNG, е 'firefox'if (browser.equalsIgnoreCase ("firefox")) {// създаване на екземпляр на firefoxSystem.setProperty ("webdriver.gecko.driver", ". \\ geckodriver.exe");драйвер = нов FirefoxDriver ();}// Проверяваме дали параметърът е предаден като 'хром'иначе ако (browser.equalsIgnoreCase ("chrome")) {// задаване на път към chromedriver.exeSystem.setProperty ("webdriver.chrome.driver", ". \\ chromedriver.exe");// създаване на екземпляр на chromeдрайвер = нов ChromeDriver ();}// Проверяваме дали параметърът е предаден като 'Edge'иначе ако (browser.equalsIgnoreCase ("Edge")) {// задаване на път към Edge.exeSystem.setProperty ("webdriver.edge.driver", ". \\ MicrosoftWebDriver.exe");// създаване на екземпляр на Edgeдрайвер = нов EdgeDriver ();}друго {// Ако нито един браузър не е предал изключениехвърли ново изключение („Браузърът не е правилен“);}driver.manage (). timeouts (). implicitlyWait (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"?><параметър име = "браузър" стойност = "Chrome" /><класове> <параметър име = "браузър" стойност = "Firefox" /><класове> <параметър име = "браузър" стойност = "ръб" /><класове>
ЗАБЕЛЕЖКА: За да стартирате теста, щракнете с десния бутон върху testing.xml, изберете Run As и щракнете върху TestNG
Обобщение
- Крос браузърното тестване е техника за тестване на уеб приложение с различни уеб браузъри.
- Селенът може да поддържа различен тип браузъри за автоматизация.
- Селенът може да бъде интегриран с TestNG за извършване на тестване на множество браузъри.
- От параметрите в testing.xml можем да предадем името на браузъра, а в тестов случай можем да създадем референция за WebDriver съответно.
Забележка: Дадената програма е създадена и тествана на селен 3.0.1, Chrome 56.0.2924.87, Firefox 47.0.2 и Microsoft Edge 14.14393. Ако програмите дават грешка, моля, актуализирайте драйвера
Изтеглете файловете за проект на Selenium за демонстрацията в този урок