Adatszolgáltató és TestNG XML:

jún 9, 2021
admin

Amint szoftvereket készítünk, mindig azt kívánjuk, hogy más-más adatokkal másképp működjön. Amikor ugyanannak a szoftvernek a tesztelésére kerül sor, nem lehetünk igazságtalanok, ha csak egy adathalmazzal teszteljük. Itt is meg kell győződnünk arról, hogy a rendszerünk minden olyan kombinációkészletet figyelembe vesz, amelyet várhatóan támogat. Ehhez paramétereznünk kell a tesztünk scipts paramétereit. Itt jön a képbe a paraméterezés.

Paraméterezés a Seleniumban

A paraméterezés a Seleniumban a tesztszkriptek paraméterezése annak érdekében, hogy futásidőben több adatot adjunk át az alkalmazásnak. Ez egy olyan végrehajtási stratégia, amely automatikusan többször futtatja a teszteseteket különböző értékek használatával. A tesztszkriptek paraméterezésével elért koncepciót adatvezérelt tesztelésnek nevezik.

Ebben a bemutatóban megismerheti-

  • A paraméterezés típusa a TestNG-ben-
  • Paraméterek annotáció a Testnggel.xml
  • Hibaelhárítás
  • Paraméterek a Dataprovider használatával
  • A DataProvider meghívása különböző osztályokból
  • A paraméterek típusai a Dataproviderben

A paraméterezés típusa a TestNG-

A paraméterezés egyértelműbbé tétele, végigmegyünk a paraméterezési lehetőségeken a Selenium Webdriver egyik legnépszerűbb keretrendszerében – a TestNG-ben.

A Paraméterek annotáció és a TestNG XML fájl segítségével.

  • A DataProvider annotáció segítségével kétféleképpen tudjuk elérni a paraméterezést a TestNG-ben

    1. .

    Paraméterek a Testng.xml-ből lehet suite vagy teszt szintű

    Paraméter a DataProvider-ből vehet Method és ITestContext paramétert.

    Tanulmányozzuk őket részletesen –

    Parameters Annotation in TestNG

    Parameters Annotation in TestNG egy olyan módszer, amellyel értékeket adhatunk át a tesztmódszereknek argumentumként az .xml fájl segítségével. A felhasználóknak a futtatás során szükségük lehet az értékek átadására a tesztmódszereknek. A @Parameters annotációs módszer bármelyik @Test, @Before, @After vagy @Factory annotációval rendelkező metódusban használható.

    Parameters annotation with Testng.xml

    Válassza a paraméterezést annotációk segítségével, ha nem akarja kezelni a komplexitást & a bemeneti kombinációk száma kevesebb.

    Lássuk, hogyan működik ez

    Tesztforgatókönyv

    1. lépés) Indítsuk el a böngészőt & menjünk a Google.com

    Szint 2) Adjunk meg egy keresési kulcsszót

    Szint 3) Ellenőrizzük, hogy a beírt érték megegyezik-e a tesztadataink által megadott értékkel

    Szint 4) Ismételjük meg a 2 & 3-at, amíg minden értéket be nem adunk

    Teszt szerző Keresőkulcs
    Guru99 India
    Krishna USA
    Bhupesh Kína

    Itt egy példa arra, hogy hogyan kell csinálni paraméterek nélkül

    Egy tanulmány, a fenti példát. Képzeljük el, milyen összetett lesz a kód, ha ezt 3 bemeneti kombinációra csináljuk

    Most, paraméterezzük ezt a TestNG segítségével

    Ezért, szükségünk lesz

    • El kell készítenünk egy XML fájlt, amely a paramétereket fogja tárolni
    • A tesztben adjunk hozzá @Parameters

    Itt a teljes kód

    Teszt szint TestNG.xml

    ParameterWithTestNGXML.java fájl

    Instrukciók a szkript futtatásához, válassza ki az XML fájlt és futtassa a Test NG Suite

    Jobb klikk a .xml fájlt -> Run as -> Testng Suite (Megjegyzés: Suite)

    Most, a paraméterek 2 szinten határozhatók meg

    1. Suite szint – A TestNG XML fájl <suite> tagjén belüli paraméterek suite szintű paraméterek lesznek.
    2. Teszt szint — A tesztelés XML fájl <Test> tagjén belüli paraméterek lesznek a teszt szint paraméterei.

    Itt ugyanaz a teszt a suite szintű paraméterekkel

    MEGJEGYZÉS: Ha a paraméter neve megegyezik a suite szinten és a teszt szinten, akkor a teszt szintű paraméterek előnyben részesülnek a suite szinttel szemben. Tehát ebben az esetben a teszt szinten belüli összes osztály megosztja a felülbírált paramétert, és a többi osztály, amelyik a teszt szinten kívül van, megosztja a lakosztály szintű paramétert.

    Hibaelhárítás

    Issue # 1 A paraméter értéke a testng.xml-ben nem tipizálható a megfelelő teszt metódus paraméterére, hibát fog dobni.

    Nézzük a következő példát

    Itt az ‘author’ attribútum ‘Guru99’-nek felel meg, ami egy karakterlánc, a megfelelő tesztmódszer pedig egész értéket vár, ezért itt kivételt kapunk.

    2. probléma A @Paramétereidnek nincs megfelelő értékük a testing.xml-ben.

    Ezt a helyzetet úgy tudja megoldani, hogy a tesztmódszer megfelelő paraméteréhez hozzáadja a @optional megjegyzést.

    3. probléma: Ugyanannak a paraméternek több értékét szeretné tesztelni a Testng.xml segítségével

    Az egyszerű válasz az, hogy ez nem lehetséges! Lehet több különböző paramétere, de minden paraméter csak egyetlen értéket vehet fel. Ez segít megelőzni az értékek kemény kódolását a szkriptben. Ezáltal a kód újrafelhasználhatóvá válik. Gondolj rá úgy, mint a szkripted konfigurációs fájljaira. Ha több értéket szeretne használni egy paraméterhez, használja a DataProviders

    Data Provider in TestNG

    A Data Provider in TestNG egy olyan módszer, amelyet akkor használnak, ha a felhasználónak összetett paramétereket kell átadni. Az összetett paramétereket Javából kell létrehozni, például összetett objektumokat, tulajdonságfájlokból vagy adatbázisból származó objektumokat lehet átadni az adatszolgáltató metódussal. A metódus @DataProvider annotációval van ellátva, és egy objektumokból álló tömböt ad vissza.

    A Dataprovider

    @Parameters annotáció használata egyszerű, de több adathalmazzal való teszteléshez Data Provider-t kell használnunk.

    Tesztelési keretrendszerünkkel több ezer webes űrlap kitöltéséhez más módszertanra van szükségünk, amely egyetlen végrehajtási folyamattal nagyon nagy adathalmazt tud adni.

    Ezt az adatvezérelt koncepciót a @DataProvider annotációval érjük el a TestNG-ben.

    Ez csak egy attribútummal rendelkezik ‘name’. Ha nem adja meg a name attribútumot, akkor a DataProvider neve megegyezik a megfelelő metódus nevével.

    Az adatszolgáltató egy kétdimenziós JAVA-objektumot küld vissza a tesztmódszerhez, és a tesztmódszer, M-szer fogja meghívni egy M*N típusú objektumtömböt. Például, ha a DataProvider egy 2*3 objektumból álló tömböt ad vissza, akkor a megfelelő tesztmódszer 2-szer lesz meghívva 3 paraméterrel minden alkalommal.

    Teljes példa

    DataProvider meghívása más osztályból

    A DataProvider alapértelmezés szerint ugyanabban az osztályban található, ahol a tesztmódszer vagy annak alaposztálya. Ahhoz, hogy más osztályba helyezzük, statikussá kell tennünk az adatszolgáltató metódust, és a teszt metódusban hozzá kell adnunk egy dataProviderClass attribútumot a @Test annotációban.

    Kódpélda

    TestClass ParameterDataproviderWithClassLevel.java

    DataproviderClass.java

    A paraméterek típusai az adatszolgáltatóban

    A DataProvider módszer kétféle paramétert támogat.

    Módszer- Ha ugyanannak a DataProvidernek különbözőképpen kell viselkednie különböző tesztmódszerrel , használja a Method paramétert.

    A következő példában ,

    • Vizsgáljuk, hogy a módszer neve testMethodA.
    • Ha igen, akkor egy értékkészletet adunk vissza
    • Emás esetben egy másik értékkészletet adunk vissza

    Itt a kimenet

    ITestContext- A tesztesetek különböző paramétereinek létrehozására használható csoportok alapján.

    A valós életben az ITestContext segítségével a paraméterek értékeit a tesztmódszerek, hosztok, a teszt konfigurációi alapján változtathatjuk.

    A következő kódpéldában

    • Van 2 csoportunk A & B
    • Minden tesztmódszer egy csoporthoz van rendelve
    • Ha a csoport értéke A, egy adott adatkészletet kapunk vissza
    • Ha a csoport értéke B, egy másik adatkészletet kapunk vissza

    Megjegyzés: Ha közvetlenül futtatja a testng osztályt, akkor először meghívja az adatszolgáltatót, amely nem kaphat csoportinformációt, mivel a csoportok nem állnak rendelkezésre. De ehelyett, ha ezt az osztályt a testng.xml-en keresztül hívja meg, akkor az ITestContext segítségével elérhető lesz a csoportinformáció. Használja a következő XML-t a teszt hívásához

    Summary:

    • A paraméterezés szükséges az adatvezérelt tesztelés létrehozásához.
    • A TestNG kétféle paraméterezést támogat, a @Parameter+TestNG.xml és a@DataProvider használatával
    • A @Parameter+TestNG.xml-ben paramétereket lehet elhelyezni suite és teszt szinten. Ha

      Az azonos paraméternév mindkét helyen deklarálva van; a teszt szintű paraméter előnyben részesül a suit szintű paraméterrel szemben.

    • A @Parameter+TestNG.xml használatával egyszerre csak egy értéket lehet megadni, de a @DataProvider egy objektum 2d tömbjét adja vissza.
    • Ha a DataProvider más osztályban van jelen, mint az az osztály, ahol a tesztmódszer található, a DataProvidernek statikus módszernek kell lennie.
    • A DataProvider által támogatott két paraméter a Method és az ITestContext.
  • Vélemény, hozzászólás?

    Az e-mail-címet nem tesszük közzé.