Използване на кръстосано тестване на браузъра Selenium уебдрайвер
Използване на кръстосано тестване на браузъра Selenium
Тестване на различни браузъри е вид функционален тест за проверка дали вашето уеб приложение работи според очакванията в различни браузъри.
Защо се нуждаем от Cross Browser Test?
Уеб базираните приложения са напълно различни от 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“ ще предаде стойността на параметъра „браузър“ като „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("https://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
Oбобщение
- Кросбраузърното тестване е техника за тестване на уеб приложение с различни уеб браузъри.
- Selenium може да поддържа различен тип инструмент за тестване в различни браузъри за автоматизация.
- Selenium може да се интегрира с TestNG за извършване на тестване с няколко браузъра.
- От параметрите в testing.xml можем да предадем името на браузъра и в тестов случай можем съответно да създадем препратка към WebDriver.
Забележка: Дадената програма е създадена и тествана на селен 3.0.1, Chrome 56.0.2924.87, Firefox 47.0.2 & Microsoft Edge 14.14393. Ако програмите дават грешка, моля, актуализирайте драйвера
Изтеглете Selenium Проектни файлове за демонстрацията в този урок