learn how use testng annotations selenium
Kao što većina vas zna, TestNG je automatizacija okvir koji se široko koristi u selenu . Za sve testere važno je razumjeti napomene korištene tijekom rada s TestNG-om.
Pojednostavljeno, napomene TestNG su retci koda koji se ubacuju u program / poslovnu logiku kako bi se kontroliralo kako se izvode donje metode.
U ovom ću se članku usredotočiti na važnost različitih vrsta bilješki i njihovu upotrebu.
U nastavku sam podijelio postavke korištene za moj projekt. To se ne mora slijediti za vaš projekt.
Napomene se razlikuju ovisno o zahtjevima vašeg projekta. Međutim, tijek izvršenja bit će isti.
Preduvjeti:
- Instalirajte TestNG u Eclipse. Ček ovaj vodič o Vodiču za instalaciju .
- JDK - Java razvojni komplet
- Bilješke se mogu koristiti samo s verzijom Java 1.5 ili novijom
Prije pisanja testnih skripti ili postavljanja projekta, trebali bismo znati hijerarhiju u kojoj bilješke rade. Izvršenje će uvijek ostati isto.
Na primjer, sastavite i pokrenite donju skriptu i primijetite redoslijed izvršenja. Bit će sljedeće:
- BeforeSuite
- BeforeTest
- BeforeClass
- BeforeMethod
- Testni slučaj 1
- AfterMethod
- BeforeMethod
- Testni slučaj 2
- AfterMethod
- Nakon nastave
- AfterTest
- AfterSuite
Primjer:
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 skripte za testiranje možemo razbiti na sljedeće korake:
- Napišite poslovnu logiku testa i umetnite gore Bilješke za TestNG u vašem kodu
- Dodajte podatke o svom testu (npr. Naziv klase, grupe, metode koje želite pokrenuti itd.) U a testng.xml datoteka.
- Pokrenite TestNG
No, pitanje i dalje ostaje - koje bismo informacije trebali pružiti u gornjim bilješkama?
Pogledajte važne korake koje možemo postići pomoću gornjih napomena:
# 1) @Test
Ovo je glavni dio naše skripte za automatizaciju gdje ćemo napisati poslovnu logiku, stvari koje želimo automatizirati. Atribute možemo proslijediti našoj testnoj metodi.
Ispod su popisi atributa koje možemo proslijediti našoj testnoj metodi:
- uvijekRun : Koristi se kada želimo biti sigurni da se metoda uvijek izvodi, čak i ako parametri o kojima metoda ovisi ne uspiju. Ako se postavi na true, ova će se metoda ispitivanja uvijek izvoditi. Npr: @Test (alwaysRun = true)
- dataProvider : TestNG dataProvider koristi se za pružanje bilo kakvih podataka za parametriranje. Npr. @Test (dataProvider = 'Pozdrav').
- dataProviderClass : Ovo je klasa odakle podatke prosljeđujemo davatelju podataka. U našem slučaju naziv klase dataProvider je 'Zdravo'.
- zavisiOnGroups : To je popis grupa o kojima ovisi ova metoda. Npr: @Test (grupe = {'Grad', 'Država'})
- zavisiOnMethods: Ova se naredba koristi za izvršavanje metode koja se temelji na ovisnoj metodi. Npr: @Test (zavisiOnMethods = {'OpenBrowser', 'baza podataka je podignuta'})
- opis : To je opis metode. Npr: @Test (opis = 'metoda ispitivanja')
- invocationCount : Odnosi se na broj poziva metoda. To će raditi kao petlja. Npr: @Test (invocationCount = 7) . Stoga će se ova metoda izvršiti 7 puta.
- invocationTimeOut : Ovo se odnosi na maksimalan broj milisekundi koje treba proći metoda da bi dovršio sve invocationCount. Ovaj će se atribut zanemariti ako nije naveden invocationCount. Npr: @Test (invocationCount = 7, invocationTimeOut = 30)
- prioritet : Ova naredba postavlja prioritet ispitne metode. Prvo će se zakazati niži prioriteti. Npr: @Test (prioritet = 1)
#dva)@BeforeSuite i @AfterSuite
U @BeforeSuite anotiranom metodom, možete postaviti i pokrenuti selen vozači i u @AfterSuite anotiranom metodom, možete zaustaviti selenske upravljačke programe
Primjer :
public class TestSuiteSetup () { @BeforeSuite(alwaysRun = true) public void setupSuite() { WebDriver driver = new FirefoxDriver(); } @AfterSuite(alwaysRun = true) public void tearDown() { driver().close(); } }
# 3)@BeforeClass i @AfterClass
U @BeforeClass anotiranom metodom, možete postaviti svojstva firefoxa, inicijalizirati upravljački program i tako dalje i unutra @Nakon nastave anotiranom metodom, možete zaustaviti vozača
Primjer :
@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 i @AfterMethod
U @BeforeMethod anotiranom metodom, možete provjeriti vezu s bazom podataka prije izvršavanja metode ispitivanja i u programu Windows Vista @AfterMethod anotiranom metodom, možete zatvoriti vezu s bazom podataka
Primjer :
@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 i @AfterTest
U @BeforTest metodu, možete postaviti postavke profila za Firefox i @AfterTest metodom možete staviti neki kôd koji će generirati rezultat testa i poslati ga dionicima
Primjer :
@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 }
Najvažniji aspekt koji ovdje treba napomenuti tijekom rada s napomenama jest da vaš sustav treba biti opremljen Javom 1.5 ili novijom verzijom, inače Eclipse može pokazati pogrešku da napomene nisu podržane u vašem sustavu.
Sada razmotrite slučaj kada vaš sustav ima ispravnu verziju Jave koja je potrebna za napomene, ali pogreška se i dalje pojavljuje.
Nešto poput dolje:
Sintaksna pogreška, bilješke su dostupne samo ako je razina izvora 1,5 ili veća.
Što ćeš sada raditi? Tamo su tri mogućnosti za ispravljanje ove situacije.
Krenimo redom kroz jedan:
Opcija 1:
- Idite na Eclipse i desnom tipkom miša kliknite svoj projekt
- Odaberite Svojstva
- Kliknite Java Compiler
- Provjerite je li razina sukladnosti s Compilerom 1,5 ili viša
- Spremite postavke i vaš je problem riješen
2. opcija:
- Idite na karticu Prozor u Eclipseu
- Odaberite Postavke
- Kliknite Java, a zatim Compiler
- Provjerite je li razina sukladnosti s Compilerom 1,5 ili viša
- Spremite postavke i vaš je problem riješen
Opcija # 3:
Provjerite svoj Java početni put postavljanjem ispravne varijable puta Java okruženja.
Zaključak:
Kroz ovaj članak pokušali smo razgovarati o nekim važnim napomenama i atributima koje testeri često koriste. Međutim, u TestNG-u ima više napomena koje se ne koriste često, poput @AfterGroups, @BeforeGroups i tako dalje koji se koriste kada radite s grupama u skripti za test projekta.
Stoga upotrijebite gornje bilješke prema svojim zahtjevima. Uvijek je poželjno ne izvoditi postavljanje projekta testnom metodom. U testnoj metodi napišite osnovnu poslovnu logiku koja će se testirati.
Pitanja i odgovori za intervju za html5 css3
Provjerite je li vaš sustav opremljen verzijom Java 1.5 ili novijom, inače Eclipse može pokazati pogrešku da vaš sustav ne podržava napomene.
Nadam se da će vam ovaj članak pomoći s oznakama TestNG. Molimo vas da nas obavijestite u slučaju bilo kakvih komentara ili pitanja.
Preporučena literatura
- Kako se koristi TestNG Framework za stvaranje skripti za selen - TestNG Selen Tutorial # 12
- Selen Pronađi element pomoću udžbenika teksta s primjerima
- 30+ najboljih vodiča za selen: naučite selen na stvarnim primjerima
- Vodič za krastavac selenij: Integracija Java Selenium WebDriver krastavaca
- Uvod u Selenium WebDriver - Vodič za selen br. 8
- Učinkoviti scenariji za skriptiranje i rješavanje problema sa selenijem - Vodič za selenij br. 27
- Otklanjanje pogrešaka u skriptama za selen sa zapisnicima (Vodič za Log4j) - Vodič za selen # 26
- Python DateTime Vodič s primjerima