learn how use testng annotations selenium
TestNG, ako väčšina z vás vie, je automatizácia rámec široko používaný v seléne . Pre všetkých testerov je dôležité pochopiť anotácie použité pri práci s TestNG.
Zjednodušene povedané, anotácie TestNG sú riadky kódu, ktoré sú vložené do programovej / obchodnej logiky na kontrolu spôsobu spustenia nižšie uvedených metód.
V tomto článku sa budem venovať dôležitosti rôznych typov anotácií a ich použitiu.
Ďalej uvádzam zdieľanie nastavení použitého pre môj projekt. To pre váš projekt nemusí byť nevyhnutne dodržané.
Anotácie sa líšia v závislosti od vašich požiadaviek na projekt. Postup exekúcie však bude rovnaký.
Predpoklady:
- Nainštalujte TestNG do Eclipse. Skontrolujte tento návod na Sprievodcu inštaláciou .
- JDK - Java Development Kit
- Poznámky je možné používať iba vo verzii Java 1.5 alebo novšej
Pred napísaním testovacích skriptov alebo nastavením projektu by sme mali poznať hierarchiu, v ktorej anotácie fungujú. Poprava zostane vždy rovnaká.
Napríklad, skompilujte a spustite nasledujúci skript a všimnite si príkaz na spustenie. Bude to nasledovné:
- BeforeSuite
- BeforeTest
- Predtrieda
- Pred metódou
- Testovací prípad 1
- AfterMethod
- Pred metódou
- Testovací prípad 2
- AfterMethod
- Po hodine
- AfterTest
- AfterSuite
Príklad:
public class test { @BeforeMethod public void beforeMethod() { System.out.println(' Before Method will execute before every test method'); } @AfterMethod public void afterMethod() { System.out.println('After Method will execute after every test method '); } @BeforeClass public void beforeClass() { System.out.println('Before Class will always execute prior to Before Method and Test Method '); } @AfterClass public void afterClass() { System.out.println('After Class will always execute later to After Method and Test method'); } @BeforeTest public void beforeTest() { System.out.println('Before Test will always execute prior to Before Class, ,Before Method and Test Method '); } @AfterTest public void afterTest() { System.out.println('After Test will always execute later to After Method, After Class '); } @BeforeSuite public void beforeSuite() { System.out.println(“Before Suite will always execute prior to all annotations or tests in the suite.'); } @AfterSuite public void afterSuite() { System.out.println('After suite will always execute at last when all the annotations or test in the suite have run.'); } @Test public void testCase1() { System.out.println('This is my First Test Case 1'); } @Test public void testCase2() { System.out.println('This is my Second Test Case 2'); } }
Proces testovacieho skriptu môžeme rozdeliť do nasledujúcich krokov:
- Vyššie napíšte obchodnú logiku vášho testu a vložte ju Anotácie TestNG vo vašom kóde
- Pridajte informácie o svojom teste (napr. Názov triedy, skupiny, metódy, ktoré chcete spustiť, atď.) Do a testng.xml spis.
- Spustite TestNG
Otázkou však stále zostáva - aké informácie by sme mali poskytnúť vo vyššie uvedených anotáciách?
Zoznámte sa s dôležitými krokmi, ktoré môžeme dosiahnuť pomocou vyššie uvedených anotácií:
# 1) @Test
Toto je hlavná časť nášho automatizačného skriptu, kde budeme písať obchodnú logiku, veci, ktoré chceme automatizovať. Môžeme odovzdať atribúty našej testovacej metóde.
Ďalej uvádzame zoznam atribútov, ktoré môžeme odovzdať našej metóde testu:
- alwaysRun : Používa sa to, keď sa chceme ubezpečiť, že metóda vždy beží, aj keď parametre, na ktorých metóda závisí, zlyhajú. Ak je nastavená hodnota true, táto testovacia metóda bude fungovať vždy. Napr .: @Test (alwaysRun = true)
- poskytovateľ údajov : TestNG dataProvider sa používa na poskytnutie akýchkoľvek údajov na parametrizáciu. Napr. @Test (dataProvider = „Dobrý deň“).
- dataProviderClass : Toto je trieda, z ktorej odovzdávame údaje poskytovateľovi údajov. V našom prípade je názov triedy dataProvider „Hello“.
- záleží na skupinách : Je to zoznam skupín, od ktorých táto metóda závisí. Napr .: @Test (groups = {„Mesto“, „Štát“})
- dependOnMethods: Tento príkaz sa používa na vykonanie metódy založenej na jej závislej metóde. Napr .: @Test (dependsOnMethods = {„OpenBrowser“, „databáza je hore“})
- popis : Je to popis metódy. Napr .: @Test (description = “test method”)
- invocationCount : Týka sa to počtu prípadov, kedy by mala byť metóda vyvolaná. Bude to fungovať ako slučka. Napr .: @Test (invocationCount = 7) . Táto metóda sa teda vykoná sedemkrát.
- invocationTimeOut : Toto sa vzťahuje na maximálny počet milisekúnd, ktoré by metóda mala trvať na dokončenie celého invokačného počtu. Ak nie je zadaný invocationCount, bude tento atribút ignorovaný. Napr .: @Test (invocationCount = 7, invocationTimeOut = 30)
- prioritou : Tento príkaz nastavuje prioritu testovacej metódy. Najskôr sa naplánujú nižšie priority. Napr .: @Test (priorita = 1)
#dva)@BeforeSuite a @AfterSuite
V @BeforeSuite anotovanou metódou, môžete nastavenie a spustenie selén vodičov a v @AfterSuite anotovanou metódou, môžete zastaviť ovládače selénu
Príklad :
public class TestSuiteSetup () { @BeforeSuite(alwaysRun = true) public void setupSuite() { WebDriver driver = new FirefoxDriver(); } @AfterSuite(alwaysRun = true) public void tearDown() { driver().close(); } }
# 3)@BeforeClass a @AfterClass
V @BeforeClass anotovanou metódou, môžete nastaviť svoje vlastnosti firefoxu, inicializovať ovládač atď @Po hodine anotovanou metódou, môžete vodiča zastaviť
Príklad :
@BeforeClass(description = 'Set capabilities for your Firefox browser and set time it should wait for a page to load.') public static void firefoxSetUp() throws MalformedURLException { DesiredCapabilities capability = DesiredCapabilities.firefox(); driver = new FirefoxDriver(capability); driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); driver.manage().window().setSize(new Dimension(1920, 1080)); } @AfterClass(description = 'close your firefox driver') public void afterclass(){ driver.close(); }
# 4)@BeforeMethod a @AfterMethod
V @BeforeMethod anotovanou metódou, môžete skontrolovať pripojenie k databáze pred vykonaním testovacej metódy a v prehliadači @AfterMethod anotovanou metódou, môžete ukončiť svoje pripojenie k databáze
Príklad :
@BeforeMethod(description='connect to database') public void beforemethod() throws SQLException{ //check database connection is up String databaseurl = 'jdbc:oracle://192.168.1.258/myDB'; DriverManager.getConnection(databaseurl, 'username', 'password'); }
@AfterMethod(description='close database connection') public void aftermethod() throws SQLException{ //check database connection is closed String databaseurl = 'jdbc:oracle://192.168.1.258/myDB'; Connection connect = DriverManager.getConnection(databaseurl, 'username', 'password'); if(connect!=null) connect.close(); }
# 5)@BeforeTest a @AfterTest
V @BeforTest Môžete nastaviť svoje predvoľby profilu firefox a v @ AfterTest metódou, môžete vložiť nejaký kód, ktorý vygeneruje výsledok testu a pošle ho poštou zainteresovaným stranám
Príklad :
@BeforeTest (description='set your firefox profile preferences according to your project requirement') public void single_run(){ FirefoxProfile firefoxProfile = new FirefoxProfile(); firefoxProfile.setPreference ('browser.download.folderList',2); firefoxProfile.setPreference ('browser.download.manager.showWhenStarting',false); firefoxProfile.setPreference ('browser.download.dir','E:\reports\'); firefoxProfile.setPreference ('browser.helperApps.neverAsk.saveToDisk','csv'); driver = new FirefoxDriver(firefoxProfile); String baseUrl = 'www.gmail.com'; } @AfterTest (description='') public void teardown(){ //a code which will send the test details report }
Najdôležitejším aspektom, ktorý by ste si tu mali uvedomiť pri práci s anotáciami, je to, že váš systém by mal byť vybavený verziou Java 1.5 alebo novšou, inak by Eclipse mohla zobraziť chybu, že anotácie vo vašom systéme nie sú podporované.
Teraz zvážte prípad, keď má váš systém správnu verziu Java potrebnú pre anotácie, ale chyba sa stále zobrazuje.
Niečo ako nižšie:
Syntaxová chyba, anotácie sú k dispozícii, iba ak je úroveň zdroja 1,5 alebo vyššia.
Čo budeš teraz robiť? Existujú existujú tri možnosti, ako túto situáciu napraviť.
Poďme si to postupne prejsť:
Možnosť 1:
- Prejdite do Eclipse a kliknite pravým tlačidlom myši na svoj projekt
- Vyberte Vlastnosti
- Kliknite na Java Compiler
- Uistite sa, že vaša úroveň zhody kompilátora je 1,5 alebo vyššia
- Uložte nastavenia a váš problém je vyriešený
Možnosť č. 2:
- Prejdite na kartu Window v Eclipse
- Vyberte Predvoľby
- Kliknite na Java a potom na Compiler
- Uistite sa, že vaša úroveň zhody kompilátora je 1,5 alebo vyššia
- Uložte nastavenia a váš problém je vyriešený
Možnosť č. 3:
Skontrolujte svoju domovskú cestu Java nastavením správnej premennej cesty prostredia v prostredí Java.
Záver:
V tomto článku sme sa pokúsili prediskutovať niektoré dôležité poznámky a atribúty, ktoré testéri často používajú. V TestNG je však viac anotácií, ktoré sa často nepoužívajú, ako napr @AfterGroups, @BeforeGroups atď., ktoré sa používajú pri práci so skupinami v testovacom skripte projektu.
Použite teda vyššie uvedené anotácie podľa svojich požiadaviek. Nastavenie vášho projektu sa vždy odporúča nerobiť testovacou metódou. Do testovacej metódy napíšte základnú obchodnú logiku, ktorá sa má testovať.
aké e-mailové adresy tam sú
Uistite sa, že je váš systém vybavený verziami Java 1.5 alebo novšími, inak môže Eclipse zobrazovať chybu, že váš systém nepodporuje anotácie.
Dúfam, že vám tento článok pomôže s anotáciami TestNG. V prípade akýchkoľvek pripomienok alebo otázok nás kontaktujte.
Odporúčané čítanie
- Ako používať rámec TestNG na vytváranie skriptov selénu - návod na testovanie selénu TestNG # 12
- Sprievodca hľadaním prvkov selénom podľa výučby s príkladmi
- 30+ najlepších návodov na selén: Naučte sa selén na skutočných príkladoch
- Výukový program Cucumber Selenium: Cucumber Java Selenium WebDriver Integration
- Úvod do softvéru Selenium WebDriver - Výučba selénu č. 8
- Efektívne scenáre selénu a riešenie problémov - scenáre selénu # 27
- Ladenie selénových skriptov pomocou denníkov (výučba Log4j) - výučba selénu č. 26
- Výukový program pre Python DateTime s príkladmi