Cross Browser-testen met Selenium WebDriver

Inhoudsopgave:

Anonim

Wat is crossbrowser-testen?

Cross Browser Testing is een soort functionele test om te controleren of uw webapplicatie werkt zoals verwacht in verschillende browsers.

Waarom hebben we crossbrowser-tests nodig?

Webtoepassingen zijn totaal verschillend van Windows-toepassingen. Een webapplicatie kan door de eindgebruiker in elke browser worden geopend. Sommige mensen geven er bijvoorbeeld de voorkeur aan om https://twitter.com in de Firefox-browser te openen, terwijl anderen de Chrome-browser of IE kunnen gebruiken .

In het onderstaande diagram kun je zien dat in IE de inlogbox van Twitter niet in alle hoeken een curve vertoont, maar we kunnen het wel zien in de Chrome-browser.

We moeten er dus voor zorgen dat de webtoepassing werkt zoals verwacht in alle populaire browsers, zodat meer mensen er toegang toe hebben en deze kunnen gebruiken.

Dit motief kan worden vervuld met Cross Browser Testing van het product.

Reden Cross Browser-problemen

  1. Lettergrootte komt niet overeen in verschillende browsers.
  2. JavaScript-implementatie kan verschillen.
  3. CSS, HTML-validatieverschil kan er zijn.
  4. Sommige browsers ondersteunen nog steeds geen HTML5.
  5. Pagina-uitlijning en div-grootte.
  6. Afbeelding oriëntatie.
  7. Browser incompatibiliteit met OS. Enz.

Crossbrowser-tests uitvoeren

Als we Selenium WebDriver gebruiken, kunnen we testcases automatiseren met Internet Explorer, FireFox, Chrome, Safari-browsers.

Om testcases met verschillende browsers tegelijkertijd op dezelfde machine uit te voeren, kunnen we het Testng-framework integreren met Selenium WebDriver.

Uw testing.xml zal er zo uitzien,

Deze testing.xml komt overeen met de testcase die er zo uit zal zien

Omdat de testing.xml twee Test-tags heeft ('ChromeTest', 'FirefoxTest'), zal deze testcase twee keer worden uitgevoerd voor 2 verschillende browsers.

Eerste test 'ChromeTest' geeft de waarde van parameter 'browser' door als 'chrome', zodat ChromeDriver wordt uitgevoerd. Deze testcase wordt uitgevoerd in de Chrome-browser.

Tweede test 'FirefoxTest' zal de waarde van parameter 'browser' doorgeven als 'Firefox', zodat FirefoxDriver wordt uitgevoerd. Deze testcase wordt uitgevoerd in de FireFox-browser.

Volledige code:

Guru99CrossBrowserScript.java

pakket parallelTest;importeer java.util.concurrent.TimeUnit;import org.openqa.selenium.By;importeer org.openqa.selenium.WebDriver;importeer org.openqa.selenium.WebElement;importeer org.openqa.selenium.chrome.ChromeDriver;importeer org.openqa.selenium.edge.EdgeDriver;importeer org.openqa.selenium.firefox.FirefoxDriver;importeer org.testng.annotations.BeforeTest;importeer org.testng.annotations.Parameters;importeer org.testng.annotations.Test;openbare klasse CrossBrowserScript {WebDriver-stuurprogramma;​* Deze functie wordt uitgevoerd voor elke test-tag in testng.xml* @param browser* @throws Uitzondering​@BeforeTest@Parameters ("browser")public void setup (String browser) genereert Uitzondering {// Controleer of de parameter die door TestNG wordt doorgegeven 'firefox' isif (browser.equalsIgnoreCase ("firefox")) {// maak een firefox-instantieSystem.setProperty ("webdriver.gecko.driver", ". \\ geckodriver.exe");driver = nieuwe FirefoxDriver ();​// Controleer of de parameter is doorgegeven als 'chrome'else if (browser.equalsIgnoreCase ("chrome")) {// stel het pad in naar chromedriver.exeSystem.setProperty ("webdriver.chrome.driver", ". \\ chromedriver.exe");// maak een Chrome-instantiedriver = nieuwe ChromeDriver ();​// Controleer of de parameter is doorgegeven als 'Edge'else if (browser.equalsIgnoreCase ("Edge")) {// stel het pad in naar Edge.exeSystem.setProperty ("webdriver.edge.driver", ". \\ MicrosoftWebDriver.exe");// Create Edge-instantiedriver = nieuwe EdgeDriver ();​anders{// Als geen enkele browser de throw-uitzondering heeft doorstaangooi nieuwe uitzondering ("Browser is niet correct");​driver.manage (). timeouts (). implicitlyWait (10, TimeUnit.SECONDS);​@Testpublic void testParameterWithXML () gooit InterruptedException {driver.get ("http://demo.guru99.com/V4/");// Zoek gebruikersnaamWebElement gebruikersnaam = driver.findElement (By.name ("uid"));// Vul gebruikersnaam inuserName.sendKeys ("guru99");//Vind wachtwoordWebElement wachtwoord = driver.findElement (By.name ("wachtwoord"));// Vul wachtwoord inpassword.sendKeys ("guru99");​​

testing.xml




OPMERKING: Om de test uit te voeren, klikt u met de rechtermuisknop op testing.xml, selecteert u Uitvoeren als en klikt u op TestNG

Overzicht

  1. Crossbrowser testen is een techniek om webapplicaties met verschillende webbrowsers te testen.
  2. Selenium kan verschillende soorten browsers ondersteunen voor automatisering.
  3. Selenium kan worden geïntegreerd met TestNG om Multi Browser Testing uit te voeren.
  4. Van parameters in testing.xml kunnen we de browsernaam doorgeven, en in een testcase kunnen we dienovereenkomstig een WebDriver-referentie maken.

Opmerking: het gegeven programma is gebouwd en getest op selenium 3.0.1, Chrome 56.0.2924.87, Firefox 47.0.2 en Microsoft Edge 14.14393. Als de programma's een foutmelding geven, dient u de driver bij te werken

Download de Selenium-projectbestanden voor de demo in deze zelfstudie