Testovanie riadené údajmi pomocou TestNG a Selenium

Testovanie riadené údajmi pomocou TestNG a Selenium
5 MIN
17 mar 2024

V tomto texte sa budeme venovať testovaniu založenému na údajoch (data driven testing). Budeme sa odvolávať na anotáciu @DataProvider v TestNG, pomocou ktorej môžeme testovacím metódam odovzdávať údaje a vytvoriť rámec testovania riadeného údajmi.

Obsah

Čo je testovanie riadené údajmi?

Testovanie riadené údajmi je technika automatizácie testovania, pri ktorej sú testovacie údaje a testovacia logika oddelené. Testovacie údaje riadia testovanie tým, že sa iteratívne načítavajú do testovacieho skriptu. Preto namiesto pevne zakódovaných vstupných údajov máme nové údaje zakaždým, keď skript načíta údaje z testovacieho zdroja údajov.

Testovanie riadené údajmi pomocou @DataProvider

Testovanie riadené údajmi možno vykonávať prostredníctvom TestNG pomocou jeho anotácie @DataProvider. Metóda s anotáciou @DataProvider nad sebou vracia 2D pole objektu, kde riadky určujú počet iterácií a stĺpce určujú počet vstupných parametrov odovzdaných metóde Test s každou iteráciou.

Táto anotácia preberá ako parameter iba názov poskytovateľa údajov, ktorý sa používa na prepojenie poskytovateľa údajov s metódou Test. Ak nie je uvedený žiadny názov, ako názov poskytovateľa údajov sa prevezme názov metódy poskytovateľa údajov.

@DataProvider(name = „nameOfDataProvider“)

public Object[][] dataProviderMethodName() {

//Data generation or fetching logic from any external source

//returning 2d array of object

return new Object[][] {{„k1″,“r1“,1},{„k2″,“r2“,2}};

}

Po vytvorení metódy poskytovateľa údajov môžeme priradiť metódu Test k poskytovateľovi údajov pomocou atribútu ‚dataProvider‘ anotácie @Test. Na úspešné prepojenie poskytovateľa údajov s metódou Test sa musí počet a dátový typ parametrov metódy Test zhodovať s parametrami vrátenými metódou poskytovateľa údajov.

@Test(dataProvider = „nameOfDataProvider“)

public void sampleTest(String testData1, String testData2, int testData3) {

System.out.println(testData1 + “ “ + testData2 + “ “ + testData3);

}

Úryvok kódu pre testovanie riadené údajmi v TestNG

@DataProvider(name = „dataProvider1“)

public Object[][] dataProviderMethod1() {

return new Object[][] {{„k1″,“r1“},{„k2″,“r2“},{„k3″,“r3“}};

}

//The test case will run 3 times with different set of values

@Test(dataProvider = „dataProvider1“)

public void sampleTest(String str1, String str2) {

System.out.println(str1 + “ “ + str2);

}

Vyššie uvedený test „sampleTest“ sa spustí 3-krát s rôznymi sadami testovacích údajov – {„k1“, „r1“},{„k2“, „r2“},{„k3“, „r3“} prijatých z metódy dataProvider1′ dataProvider.