Selaimien välinen testaus käyttäen Selenium web-ajuri
⚡ Älykäs yhteenveto
Selaimien välinen testaus käyttäen Selenium WebDriver varmistaa, että verkkosovellus toimii johdonmukaisesti Chromessa. Firefox, Safari ja Edge. Tässä opetusohjelmassa näytetään, miten voit yhdistää Selenium WebDriver kanssa TestNG rinnakkaisten istuntojen käynnistämiseksi, renderöinnin validoimiseksi ja kattavuuden skaalaamiseksi nykyaikaisissa työpöytä- ja mobiiliselaimissa.

Miksi tarvitsemme ristiinselaimen testausta?
Verkkopohjaiset sovellukset ovat hyvin erilaisia kuin natiivit työpöytäsovellukset. Loppukäyttäjä voi avata verkkosovelluksen millä tahansa selaimella. Jotkut ihmiset esimerkiksi haluavat avata https://twitter.com in Firefox, kun taas toiset käyttävät kromi, safaritai Microsoft Edge.
Alla olevasta kaaviosta näet, että vanhemmissa selaimissa Twitterin kirjautumisikkuna ei näytä pyöristettyjä kulmia oikein, kun taas moderni Chrome näyttää kulmat suunnitellusti.
Joten meidän on varmistettava, että verkkosovellus toimii odotetulla tavalla kaikissa suosituissa selaimissa, jotta useammat ihmiset voivat käyttää sitä.
Tämä tavoite voidaan saavuttaa Cross Browserilla Testaus tuotteesta jokaisessa tarkastelualueeseen kuuluvassa selaimessa.
Syitä selainten välisiin ongelmiin
- Fonttikoko ei täsmää eri selaimissa.
- JavaSkriptimoottorien toteutukset vaihtelevat Chromessa (V8), Firefox (Hämähäkkiapina), Safari (JavaScriptCore) ja Edge.
- CSS- ja HTML-validoinnin erot, mukaan lukien toimittajan etuliitteiden käsittely.
- Epäjohdonmukainen tai osittainen HTML5- ja ECMAScript-ominaisuuksien tuki vanhemmissa selainversioissa.
- Sivun tasaus, div-elementtien koko ja flexbox- tai grid-renderöintivariaatiot.
- Kuvan suunta ja väriprofiilierot.
- Selaimen yhteensopimattomuus taustalla olevan käyttöjärjestelmän kanssa, mukaan lukien mobiililaitteiden WebView-ominaisuudet Android ja iOS.
Kuinka tehdä ristiinselaimen testaus
Jos käytämme Selenium WebDriver, voimme automatisoida testitapaukset Chromea vastaan, Firefox, Microsoft Edgeja Safari-selaimet.
Suorittaaksemme testitapauksia eri selaimilla samalla koneella samanaikaisesti, voimme integroida TestNG puitteet Selenium WebDriver. Laajemman käyttöjärjestelmä- ja versiokattavuuden saavuttamiseksi samaa ohjelmistopakettia voidaan ohjata pilvipohjaisiin grideihin, kuten Sauce Labsiin, BrowserStackiin tai LambdaTestiin, WebDriver-etäpäätepisteen kautta.
Testing.xml-tiedostosi näyttää tältä:
Tämä testing.xml yhdistää Testitapaus joka näyttää tältä:
Koska testing.xml-tiedostossa on useita Test-tageja ('ChromeTest', 'FirefoxTest', 'EdgeTest'), tämä testitapaus suoritetaan kerran kutakin selainta kohden.
Ensimmäinen testi 'ChromeTest' välittää parametrin 'browser' arvon muodossa 'chrome', joten ChromeDriver suoritetaan. Tämä testitapaus suoritetaan Chrome-selaimessa.
Toinen testiFirefoxTesti" välittää parametrin "selain" arvon muodossa "Firefox', joten FirefoxOhjain suoritetaan. Tämä testitapaus suoritetaan Firefox selaimessa. Edge- tai Safari-testin lisääminen noudattaa samaa kaavaa.
Guru99CrossBrowserScript.java
Täydellinen Code:
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.openqa.selenium.safari.SafariDriver; 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 msedgedriver.exe System.setProperty("webdriver.edge.driver",".\\msedgedriver.exe"); //create Edge instance driver = new EdgeDriver(); } //Check if parameter passed as 'Safari' else if(browser.equalsIgnoreCase("Safari")){ //SafariDriver ships with macOS, no driver path needed driver = new SafariDriver(); } 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="3" 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>
HUOMAUTUS: Suorittaaksesi testin, napsauta hiiren kakkospainikkeella testing.xml, valitse Suorita nimellä ja napsauta TestNG Sviitti.
Skaalaus pilviselaimen ruudukoilla
Running Selenium WebDriver kattaa paikallisesti kaksi tai kolme selainta, mutta todelliset käyttäjät käyttävät sivustoja sadoilla eri käyttöjärjestelmä- ja selainyhdistelmillä. Pilvilaboratoriot, kuten Kastike Labs, Selainpinoja Lambdatesti paljastaa etä-WebDriver-päätepisteen. Osoita sama Selenium testit ruudukossa, läpäisevät halutut ominaisuudet selaimelle, versiolle, käyttöjärjestelmälle ja resoluutiolle, ja ohjelmisto skaalautuu horisontaalisesti ilman paikallisten ajureiden hallintaa.
Nykyaikaiset gridit sisältävät myös tekoälyllä ohjattuja ominaisuuksia, kuten visuaalisen regression erottelun, itsekorjautuvien elementtien paikannuksen ja epätasaisuuden pisteytyksen, jotka vähentävät pitkäikäisten selaintenvälisten testaussarjojen ylläpitokustannuksia.
Huomautus: Annettu ohjelma on rakennettu ja testattu Selenium 4, Kromi, Firefoxja Microsoft EdgeJos ohjelmat antavat virheen, päivitä ajuritiedostot vastaamaan asennettua selainversiotasi tai käytä Selenium Manager, joka ratkaisee ajurit automaattisesti.
Lataa Selenium Projektitiedostot esittelyä varten tässä opetusohjelmassa




