Böngészők közötti tesztelés segítségével Selenium webdriver
⚡ Okos összefoglaló
Böngészők közötti tesztelés segítségével Selenium A WebDriver ellenőrzi, hogy egy webalkalmazás konzisztensen viselkedik-e Chrome-on, Firefox, Safari és Edge böngészőkben. Ez az oktatóanyag bemutatja, hogyan lehet kombinálni Selenium WebDriver with TestNG párhuzamos munkamenetek indításához, a renderelés validálásához és a lefedettség skálázásához modern asztali és mobilböngészőkben.

Miért van szükségünk a böngészők közötti tesztelésre?
A webalapú alkalmazások nagyon különböznek a natív asztali alkalmazásoktól. A webalkalmazásokat a végfelhasználó bármilyen böngészőben megnyithatja. Például egyesek szívesebben nyitják meg https://twitter.com in Firefox, míg mások használják króm, Safarivagy Microsoft Edge.
Az alábbi ábrán látható, hogy a régebbi böngészőkben a Twitter bejelentkezési ablaka nem jeleníti meg helyesen a lekerekített sarkokat, míg a modern Chrome a tervek szerint jeleníti meg a sarkokat.
Tehát biztosítanunk kell, hogy a webes alkalmazás a várt módon működjön minden népszerű böngészőben, hogy többen is hozzáférhessenek és használhassák.
Ez a cél a Cross Browser segítségével érhető el. Tesztelés a termék minden böngészőjében a hatókörben.
A böngészők közötti problémák okai
- Nem egyezik a betűméret a különböző böngészőkben.
- JavaA szkriptmotorok megvalósítása eltérő a Chrome-ban (V8), Firefox (Pókmajom), Szafari (JavaScriptCore) és Edge.
- CSS és HTML validációs különbségek, beleértve a szállítói előtagok kezelését.
- A HTML5 és az ECMAScript funkciók inkonzisztens vagy részleges támogatása régebbi böngészőverziókban.
- Oldal igazítása, div méretezése, valamint flexbox vagy grid megjelenítési variációk.
- Kép orientációja és színprofil-különbségek.
- Böngésző inkompatibilitása az alapul szolgáló operációs rendszerrel, beleértve a mobil WebView sajátosságait is Android és iOS.
Böngészők közötti tesztelés
Ha használunk Selenium A WebDriverrel automatizálhatjuk a Chrome elleni teszteseteket, Firefox, Microsoft Edgeés a Safari böngészők.
Ahhoz, hogy teszteseteket futtathassunk ugyanazon a gépen, egyszerre különböző böngészőkkel, integrálhatjuk a TestNG kerettel Selenium WebDriver. Szélesebb körű operációs rendszerek és verziók lefedettsége érdekében ugyanaz a csomag felhőalapú hálózatokra, például a Sauce Labsre, a BrowserStackre vagy a LambdaTestre is irányítható egy távoli WebDriver végponton keresztül.
A testing.xml fájlod így fog kinézni:
Ez a testing.xml a következővel lesz leképezve Teszt eset ami így néz ki:
Mivel a testing.xml fájl több Test címkét tartalmaz ('ChromeTest', 'Firefox„Test”, „EdgeTest”), ez a teszteset minden böngészőnél egyszer lefut.
Az első teszt, a „ChromeTest”, a „browser” paraméter értékét „chrome”-ként adja át, így a ChromeDriver végrehajtásra kerül. Ez a teszteset a Chrome böngészőn fog futni.
A második teszt'FirefoxA teszt" átadja a "böngésző" paraméter értékét, mint "Firefox', szóval FirefoxA meghajtóprogram végrehajtásra kerül. Ez a teszteset a következőn fog futni: Firefox böngésző. Egy Edge vagy Safari teszt hozzáadása ugyanazt a mintát követi.
Guru99CrossBrowserScript.java
teljes 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"); } }
tesztelés.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>
JEGYZET: A teszt futtatásához kattintson jobb gombbal a tesztelés.xml, válassza a Futtatás másként lehetőséget, és kattintson a TestNG Lakosztály.
Méretezés felhőalapú böngészőrácsokkal
futás Selenium A WebDriver lokálisan két vagy három böngészőt fed le, de a valódi felhasználók több száz operációs rendszer és böngésző kombinációjából férnek hozzá az oldalakhoz. Felhőlaboratóriumok, mint például Sauce Labs, BrowserStackés LambdaTeszt tegyen elérhetővé egy távoli WebDriver végpontot. Ugyanarra a pontra kell irányítani Selenium teszteket végez a grid-en, átadja a böngésző, verzió, operációs rendszer és felbontás kívánt képességeit, és a csomag horizontálisan skálázódik helyi illesztőprogramok kezelése nélkül.
A modern gridek olyan mesterséges intelligencia által támogatott funkciókat is tartalmaznak, mint a vizuális regressziós differenciálás, az önjavító elemkeresők és az egyenetlenségi pontozás, amelyek csökkentik a karbantartási költségeket a hosszú élettartamú böngészőközi tesztelési csomagokon.
Jegyzet: A megadott programot a következőn építették fel és tesztelték: Selenium 4, Króm, Firefoxés Microsoft EdgeHa a programok hibát jeleznek, kérjük, frissítse az illesztőprogram binárisait, hogy megfeleljenek a telepített böngésző verziójának, vagy használja a következőt: Selenium Kezelő, amely automatikusan megoldja az illesztőprogramokat.
Töltse le a Selenium Projektfájlok a bemutatóhoz ebben az oktatóanyagban




