learn how use testng annotations selenium
Kot veste večina, je TestNG avtomatizacija okvir, ki se pogosto uporablja v selenu . Za vse preizkuševalce je pomembno, da razumejo pripise, ki se uporabljajo pri delu s TestNG.
Poenostavljeno povedano, pripisi TestNG so vrstice kode, ki se vstavijo v program / poslovno logiko za nadzor nad izvajanjem spodnjih metod.
V tem članku se bom osredotočil na pomen različnih vrst pripisov in njihovo uporabo.
Spodaj sem delil nastavitve, ki se uporabljajo za moj projekt. Tega pri vašem projektu ni nujno treba upoštevati.
Pripisi se razlikujejo glede na zahteve vašega projekta. Vendar bo potek izvršitve enak.
Pogoji:
- Namestite TestNG v Eclipse. Preveri to vadnico o Vodiču za namestitev .
- JDK - Java razvojni komplet
- Pripise lahko uporabljate samo z različico Java 1.5 ali novejšo
Pred pisanjem testnih skriptov ali pripravo projekta bi morali poznati hierarhijo, v kateri delujejo pripisi. Izvedba bo vedno ostala enaka.
Na primer, prevedite in zaženite spodnji skript in opazite vrstni red izvršitve. Tako bo:
- BeforeSuite
- BeforeTest
- Predrazred
- BeforeMethod
- Testni primer 1
- AfterMethod
- BeforeMethod
- Testni primer 2
- AfterMethod
- Po pouku
- AfterTest
- AfterSuite
Primer:
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'); } }
Postopek preizkusnega skripta lahko razdelimo na spodnje korake:
- Napišite poslovno logiko testa in vstavite zgoraj Pripisi TestNG v svojo kodo
- Dodajte podatke o svojem testu (npr. Ime predavanja, skupine, metode, ki jih želite izvesti itd.) V a testng.xml mapa.
- Zaženite TestNG
Toda še vedno ostaja vprašanje - katere podatke naj navedemo v zgornjih pripisih?
Oglejte si pomembne korake, ki jih lahko dosežemo z uporabo zgornjih pripisov:
# 1) @Test
To je glavni del našega skripta za avtomatizacijo, kjer bomo zapisali poslovno logiko, stvari, ki jih želimo avtomatizirati. Atribute lahko prenesemo v našo preskusno metodo.
Spodaj so seznami atributov, ki jih lahko posredujemo naši testni metodi:
- vedno teči : To se uporablja, kadar želimo zagotoviti, da se metoda vedno izvaja, tudi če parametri, od katerih je metoda odvisna, ne uspejo. Če je nastavljeno na true, se bo ta preskusna metoda vedno izvajala. Npr: @Test (alwaysRun = true)
- dataProvider : TestNG dataProvider se uporablja za zagotavljanje kakršnih koli podatkov za parametriranje. Npr. @Test (dataProvider = 'Pozdravljeni').
- dataProviderClass : To je razred, od koder podatke posredujemo ponudniku podatkov. V našem primeru je ime razreda dataProvider “Hello”.
- dependOnGroups : To je seznam skupin, od katerih je odvisna ta metoda. Npr: @Test (skupine = {“Mesto”, “Država”})
- dependOnMethods: Ta ukaz se uporablja za izvajanje metode, ki temelji na odvisni metodi. Npr: @Test (dependOnMethods = {“OpenBrowser”, ”baza podatkov je pokončana”})
- opis : To je opis metode. Npr: @Test (opis = 'testna metoda')
- invocationCount : Nanaša se na to, kolikokrat je treba uporabiti metodo. Delovalo bo kot zanka. Npr: @Test (invocationCount = 7) . Zato se bo ta metoda izvedla 7-krat.
- invocationTimeOut : To se nanaša na največje število milisekund, ki bi jih metoda potrebovala, da je dokončana vsa invocationCount. Ta atribut bo prezrt, če invocationCount ni podan. Npr: @Test (invocationCount = 7, invocationTimeOut = 30)
- prednostna naloga : Ta ukaz določa prednost preskusne metode. Najprej bodo na sporedu nižje prioritete. Npr: @Test (prioriteta = 1)
#two)@BeforeSuite in @AfterSuite
V @BeforeSuite anotirano metodo, lahko nastavite in zaženete selen vozniki in v @AfterSuite anotirani način lahko zaustavite gonilnike Selenium
Primer :
public class TestSuiteSetup () { @BeforeSuite(alwaysRun = true) public void setupSuite() { WebDriver driver = new FirefoxDriver(); } @AfterSuite(alwaysRun = true) public void tearDown() { driver().close(); } }
# 3)@BeforeClass in @AfterClass
V @BeforeClass anotiran način, lahko nastavite lastnosti firefoxa, inicializirate gonilnik in tako naprej in znotraj @Po pouku anotiran način, lahko zaustavite voznika
Primer :
@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 in @AfterMethod
V @BeforeMethod anotirana metoda, lahko pred izvajanjem preskusne metode in v programu preverite povezavo z bazo podatkov @AfterMethod anotiran način, lahko zaprete povezavo s podatkovno bazo
Primer :
@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 in @AfterTest
V @BeforTest , lahko nastavite nastavitve profila Firefox in @AfterTest lahko vstavite kodo, ki bo ustvarila rezultat testa, in jo pošljete zainteresiranim
Primer :
@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 }
Najpomembnejši vidik, ki ga je treba tukaj omeniti pri delu s pripisi, je, da mora biti vaš sistem opremljen z različico Java 1.5 ali novejšo, sicer lahko Eclipse pokaže napako, da pripisi v vašem sistemu niso podprti.
Zdaj razmislite o primeru, ko ima vaš sistem pravo različico Jave, potrebno za pripise, vendar se napaka še vedno pojavi.
Nekaj podobnega spodaj:
Sintaksna napaka, pripisi so na voljo samo, če je raven vira 1,5 ali več.
Kaj boš zdaj? Obstajajo tri možnosti za odpravo te situacije.
Pojdimo skozi enega po enega:
1. možnost:
- Pojdite na Eclipse in z desno miškino tipko kliknite svoj projekt
- Izberite Lastnosti
- Kliknite Java Compiler
- Prepričajte se, da je stopnja skladnosti vašega prevajalnika 1,5 ali več
- Shranite nastavitve in vaša težava je rešena
2. možnost:
- Pojdite na zavihek Window v Eclipse
- Izberite Preferences
- Kliknite Java in nato Compiler
- Prepričajte se, da je stopnja skladnosti vašega prevajalnika 1,5 ali več
- Shranite nastavitve in vaša težava je rešena
3. možnost:
Preverite svojo domačo pot Java, tako da nastavite pravilno spremenljivko poti okolja Java.
Zaključek:
V tem članku smo poskušali razpravljati o nekaterih pomembnih pripisih in atributih, ki jih preizkuševalci pogosto uporabljajo. Vendar je v TestNG več pripisov, ki se ne uporabljajo pogosto, kot npr @AfterGroups, @BeforeGroups in tako naprej, ki se uporabljajo pri delu s skupinami v testnem skriptu projekta.
Zato zgornje pripise uporabite v skladu z vašimi zahtevami. Vedno je priporočljivo, da nastavitve projekta ne izvajate s preskusno metodo. V testni metodi napišite osnovno poslovno logiko, ki jo je treba preizkusiti.
izvedba hash tabele v kodi c ++
Prepričajte se, da je vaš sistem opremljen z različicami Java 1.5 ali novejšimi, sicer lahko Eclipse prikaže napako, ker pripisi v vašem sistemu niso podprti.
Upam, da vam ta članek pomaga pri pripisih TestNG. Prosimo, obvestite nas v primeru kakršnih koli pripomb ali vprašanj.
Priporočeno branje
- Kako uporabiti ogrodje TestNG za ustvarjanje skriptov za selen - Vadnica # 12 za TestNG Selenium
- Vadnica za iskanje selena z besedilom s primeri
- 30+ najboljših vaj za selen: Naučite se selen z resničnimi primeri
- Vadnica za kumare selena: Integracija kumar Java Selenium WebDriver
- Uvod v Selenium WebDriver - Vadnica za selenij št. 8
- Učinkoviti scenariji za skriptiranje in odpravljanje težav s selenijem - Vadnica za selenij št. 27
- Odpravljanje napak v skriptih selena z dnevniki (Vadnica za Log4j) - Vadnica za selen # 26
- Vadnica Python DateTime s primeri