Testovanie vo viacerých prehliadačoch pomocou TestNG

Testovanie vo viacerých prehliadačoch pomocou TestNG
5 MIN
20 mar 2024

V tomto tutoriáli sa budeme venovať testovaniu viacerých prehliadačov v programe Selenium spolu s jeho implementáciou. Na tento účel budeme integrovať Selenium s TestNG a používať anotáciu @Parameter TestNG na parametrizáciu testovacieho skriptu s rôznymi hodnotami prehliadača.

Taktiež si všimnite, že testovanie viacerých prehliadačov je možné vykonávať aj pomocou Selenium Grid. Tu však budeme používať TestNG a Selenium WebDriver len na implementáciu testovania medzi prehliadačmi.

Obsah

Čo je to testovanie naprieč prehliadačmi (multi-cross browser testing)?

Testovanie viacerých prehliadačov alebo testovanie naprieč prehliadačmi je typ testovania, pri ktorom sa testovaná aplikácia testuje s viacerými podporovanými prehliadačmi. Potreba testovania viacerých prehliadačov vyplýva zo skutočnosti, že rôzne prehliadače majú rôzne implementácie používateľského rozhrania. Nemožno teda zabezpečiť, aby aplikácie spustené v prehliadači Chrome bez problémov fungovali aj v IE.

Testovanie medzi prehliadačmi v Selenium a TestNG

Testovanie medzi prehliadačmi v Selenium možno vykonať pomocou parametrov premennej prehliadača. Na parametrizáciu premennej prehliadača môžeme použiť anotáciu @Parameter v TestNG. Pomocou anotácie @Parameter môžeme testovacím skriptom zo súboru testng.xml odovzdať rôzne hodnoty prehliadača.

Hodnota parametra prehliadača sa potom môže použiť na inštanciovanie príslušnej triedy ovládača Selenium WebDriver. Keďže hodnota prehliadača sa používa vo všetkých testovacích metódach, je lepšie použiť premennú browser v metóde @BeforeTest.

Metóda beforeTest s parametrom @Parameter TestNG bude vyzerať nasledovne:

@Parameters("browser")

@BeforeTest

public void setBrowser(String browser)

{

   if (browser.equalsIgnoreCase("Firefox")) {

      driver = new FirefoxDriver();

   }

   else if (browser.equalsIgnoreCase("Chrome")) {

      System.setProperty("webdriver.chrome.driver", 

         + pathToChromeDriverBinary + "chromedriver.exe");

      driver = new ChromeDriver();

   }

   else {

      throw new IllegalArgumentException("Invalid browser value!!");

   }

   driver.get(URL);

   driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

   driver.manage().window().maximize();

}

Ako už bolo uvedené, hodnota premennej prehliadača sa odovzdá testovacím skriptom prostredníctvom súboru testng.xml. Tento súbor testng.xml bude obsahovať značku parametra obsahujúcu premennú prehliadača a jej hodnotu.

Tu vytvoríme dva testy, každý pre prehliadač Firefox a Chrome s rôznymi hodnotami prehliadača. Pozrite si nasledujúci úryvok súboru testng.xml, aby ste pochopili koncept parametrizácie testov.

Všimnite si tiež, že uvedenie parallel=“tests“ v tagu Suite spôsobí, že dva testy sa budú spúšťať paralelne.

<suite name="MultiBrowserSuite" parallel="tests" thread-count="2">

   <test name="TestFirefox">

      <parameter name="browser" value="Firefox"/>

      <classes>

         <class name="sampleTestPackage.MultiBrowserTest"/>

      </classes>

   </test>

   <test name="TestChrome">

      <parameter name="browser" value="Chrome"/>

      <classes>

         <class name="sampleTestPackage.MultiBrowserTest"/>

      </classes>

   </test>

</suite>

Pri spustení testu pomocou súboru testng.xml sa test spustí paralelne pre všetky zadané prehliadače (v našom prípade Firefox a Chrome).