Brauseriülene testimine, kasutades Selenium Veebidraiver
⚡ Nutikas kokkuvõte
Brauseriülene testimine, kasutades Selenium WebDriver kontrollib, kas veebirakendus käitub Chrome'is järjepidevalt. Firefox, Safari ja Edge. See õpetus näitab, kuidas ühendada Selenium WebDriver koos TestNG paralleelsete seansside käivitamiseks, renderdamise valideerimiseks ja ulatuse skaleerimiseks tänapäevastes lauaarvuti- ja mobiilibrauserites.

Miks me vajame brauseritevahelist testimist?
Veebipõhised rakendused erinevad oluliselt natiivsetest töölauarakendustest. Lõppkasutaja saab veebirakenduse avada mis tahes brauseris. Näiteks eelistavad mõned inimesed avada https://twitter.com in Firefox, teised aga kasutavad Kroom, safarivõi Microsoft Edge.
Alloleval diagrammil on näha, et vanemates brauserites ei kuva Twitteri sisselogimisaken ümaraid nurki õigesti, samas kui tänapäevane Chrome kuvab nurki nii, nagu ette nähtud.
Seega peame tagama, et veebirakendus töötab ootuspäraselt kõigis populaarsetes brauserites, et rohkem inimesi saaks sellele juurde pääseda ja seda kasutada.
Seda eesmärki saab saavutada Cross Browseri abil Testimine toote igas hõlmatud brauseris.
Brauseriteüleste probleemide põhjused
- Erinevates brauserites ei sobi fondi suurus.
- JavaSkriptimootori implementatsioonid erinevad Chrome'is (V8), Firefox (Ämblik-Ahv), Safari (JavaScriptCore) ja Edge.
- CSS-i ja HTML-i valideerimise erinevused, sh tarnija eesliidete käsitlemine.
- Ebajärjekindel või osaline HTML5 ja ECMAScripti funktsioonide tugi vanemates brauseriversioonides.
- Lehekülje joondamine, div-elementide suuruse muutmine ja flexboxi või ruudustiku renderdamise variatsioonid.
- Kujutise orientatsioon ja värviprofiili erinevused.
- Brauseri ühildumatus aluseks oleva operatsioonisüsteemiga, sh mobiilse WebView'i iseärasused Android ja iOS.
Kuidas teha brauseritevahelist testimist
Kui me kasutame Selenium WebDriveriga saame automatiseerida testjuhtumeid Chrome'i vastu, Firefox, Microsoft Edgeja Safari brauserid.
Testide samaaegseks käivitamiseks erinevate brauseritega samal masinal saame integreerida TestNG raamistik koos Selenium WebDriver. Laiema operatsioonisüsteemide ja versioonide katvuse tagamiseks saab sama komplekti suunata pilvevõrkudesse, nagu Sauce Labs, BrowserStack või LambdaTest, WebDriveri kaug-lõpp-punkti kaudu.
Teie testing.xml näeb välja selline:
See testing.xml kaardistab failiga Testjuhtum mis näeb välja selline:
Kuna failil testing.xml on mitu testisilti („ChromeTest”, „Firefox„Test”, „EdgeTest”), see testijuhtum käivitatakse iga brauseri jaoks üks kord.
Esimene test 'ChromeTest' edastab parameetri 'browser' väärtuse 'chrome'-ina, seega käivitatakse ChromeDriver. See test töötab Chrome'i brauseris.
Teine katseFirefoxTest" edastab parameetri "brauser" väärtuse kui "Firefox', nii et FirefoxDraiver käivitatakse. See testjuhtum käivitatakse Firefox brauseris. Edge'i või Safari testi lisamine järgib sama mustrit.
Guru99CrossBrowserScript.java
täielik 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"); } }
testimine.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>
MÄRKUS: Testi käivitamiseks paremklõpsake testimine.xml, valige Käivita nimega ja klõpsake TestNG Sviit.
Skaleerimine pilvebrauseri ruudustikega
Running Selenium WebDriver katab lokaalselt kahte või kolme brauserit, aga päris kasutajad pääsevad saitidele ligi sadadest operatsioonisüsteemide ja brauserite kombinatsioonidest. Pilvelaborid, näiteks Kastme laborid, BrowserStackja Lambda test paljastage kaug-WebDriveri lõpp-punkt. Osutage samale Selenium testid ruudustikus, läbivad brauseri, versiooni, operatsioonisüsteemi ja eraldusvõime soovitud võimalused ning komplekt skaleerub horisontaalselt ilma kohalikke draivereid haldamata.
Kaasaegsed ruudud pakuvad ka tehisintellekti abil toimivaid funktsioone, nagu visuaalse regressiooni eristamine, isetervendavate elementide lokaliseerimine ja ebastabiilsuse hindamine, mis vähendavad pikaajaliste brauseriteüleste testimiskomplektide hoolduskulusid.
Märge: Antud programm ehitati ja testiti Selenium 4, kroom, Firefoxja Microsoft EdgeKui programmid annavad vea, värskendage draiveri binaarfaile, et need vastaksid teie installitud brauseri versioonile või kasutage Selenium Haldur, mis lahendab draiverid automaatselt.
Lae alla Selenium Selle õpetuse demo projektifailid




