learn how use testng annotations selenium
TestNG, som de fleste av dere vet, er en automatisering rammeverk mye brukt i Selen . Det er viktig for alle testere å forstå kommentarene som brukes mens de arbeider med TestNG.
For å si det enkelt, er TestNG-merknader kodelinjer som settes inn i programmet / forretningslogikken for å kontrollere hvordan metodene nedenfor skal kjøres.
I denne artikkelen skal jeg fokusere på viktigheten av forskjellige typer merknader og bruken av dem.
Nedenfor har jeg delt oppsettet som ble brukt til prosjektet mitt. Dette trenger ikke nødvendigvis å følges for prosjektet ditt.
Kommentarene varierer avhengig av prosjektkravene dine. Imidlertid vil gjennomføringsflyten være den samme.
Forutsetninger:
- Installer TestNG i Eclipse. Sjekk denne veiledningen om installasjonsveiledning .
- JDK - Java utviklingssett
- Kommentarer kan bare brukes med Java 1.5-versjonen eller nyere
Før vi skriver testskripter eller setter opp et prosjekt, bør vi vite hierarkiet der kommentarene fungerer. Utførelsen vil alltid være den samme.
For eksempel, kompiler og kjør skriptet nedenfor og legg merke til utførelsesordren. Det vil være som følger:
- BeforeSuite
- BeforeTest
- BeforeClass
- Før metoden
- Prøvesak 1
- Etter metode
- Før metoden
- Prøvesak 2
- Etter metode
- Etter timen
- AfterTest
- AfterSuite
Eksempel:
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'); } }
Vi kan dele testskriptprosessen i trinnene nedenfor:
- Skriv forretningslogikken til testen din og sett inn over TestNG-merknader i koden din
- Legg til informasjonen om testen din (f.eks. Kursnavnet, gruppene, metodene du vil kjøre osv.) I en testng.xml fil.
- Kjør TestNG
Men spørsmålet er fortsatt - hvilken informasjon bør vi gi i kommentarene ovenfor?
Ta en titt på de viktige trinnene vi kan oppnå ved hjelp av kommentarene ovenfor:
#1) @Test
Dette er hoveddelen av automatiseringsskriptet vårt der vi skal skrive forretningslogikken, de tingene vi vil automatisere. Vi kan formidle attributter til testmetoden vår.
Nedenfor er listen over attributter som vi kan overføre til testmetoden:
- kjør alltid : Dette brukes når vi vil sørge for at en metode alltid kjører selv om parametrene som metoden avhenger av, mislykkes. Hvis satt til sant, vil denne testmetoden alltid kjøre. F.eks .: @Test (alltid kjøre = sant)
- dataProvider : TestNG dataProvider brukes til å gi alle data for parameterisering. F.eks. @Test (dataProvider = “Hei”).
- dataProviderClass : Dette er klassen hvor vi overfører dataene til dataleverandøren. I vårt tilfelle er dataProvider-klassenavnet “Hei”.
- avhenger av grupper : Det er listen over grupper denne metoden er avhengig av. F.eks .: @Test (grupper = {“By”, ”Stat”})
- avhenger av metoder: Denne kommandoen brukes til å utføre en metode basert på dens avhengige metode. F.eks .: @Test (dependsOnMethods = {“OpenBrowser”, ”databasen er oppe”})
- beskrivelse : Det er beskrivelsen for metoden. F.eks .: @Test (beskrivelse = “testmetode”)
- invocationCount : Det refererer til antall ganger en metode skal påberopes. Det vil fungere som en løkke. F.eks .: @Test (invocationCount = 7) . Derfor vil denne metoden kjøres 7 ganger.
- invocationTimeOut : Dette refererer til det maksimale antall millisekunder en metode skal ta for alle invocationCount å fullføre. Dette attributtet blir ignorert hvis invocationCount ikke er spesifisert. F.eks .: @Test (invocationCount = 7, invocationTimeOut = 30)
- prioritet : Denne kommandoen angir prioriteten til testmetoden. Lavere prioriteringer vil bli planlagt først. F.eks .: @Test (prioritet = 1)
#to)@BeforeSuite og @AfterSuite
I @BeforeSuite merket metode, kan du sette opp og starte selen sjåfører og inn @AfterSuite merket metode, kan du stoppe Selen-drivere
Eksempel :
public class TestSuiteSetup () { @BeforeSuite(alwaysRun = true) public void setupSuite() { WebDriver driver = new FirefoxDriver(); } @AfterSuite(alwaysRun = true) public void tearDown() { driver().close(); } }
# 3)@BeforeClass og @AfterClass
I @BeforeClass merket metode, kan du konfigurere Firefox-egenskapene, initialisere driveren og så videre og inn @Etter timen merket metode, kan du stoppe driveren
Eksempel :
@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 og @AfterMethod
I @BeforeMethod merket metode, kan du sjekke databaseforbindelsen før du utfører testmetoden og inn @AfterMethod merket metode, kan du lukke databaseforbindelsen
Eksempel :
@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 og @AfterTest
I @BeforTest metode, kan du angi Firefox-preferanser og i @AfterTest metode, kan du legge inn noen kode som vil generere testresultatet og sende den til interessentene
Eksempel :
@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 }
Det viktigste aspektet som skal bemerkes her når du arbeider med merknader, er at systemet ditt skal være utstyrt med Java 1.5-versjon eller nyere, ellers kan Eclipse vise en feil om at merknader ikke støttes på systemet ditt.
Vurder nå et tilfelle der systemet ditt har den riktige versjonen av Java som trengs for merknader, men feilen fremdeles vises.
Noe som nedenfor:
Syntaksfeil, merknader er bare tilgjengelige hvis kildenivået er 1,5 eller høyere.
Hva vil du gjøre nå? Det er tre alternativer for å rette opp denne situasjonen.
La oss gå gjennom det en etter en:
Valg 1:
- Gå til formørkelse og høyreklikk på prosjektet ditt
- Velg Egenskaper
- Klikk på Java Compiler
- Forsikre deg om at Compiler Compliance Level er 1,5 eller høyere
- Lagre innstillingene og problemet ditt er løst
Alternativ 2:
- Gå til Window-fanen i formørkelse
- Velg Innstillinger
- Klikk på Java og deretter på Compiler
- Forsikre deg om at Compiler Compliance Level er 1,5 eller høyere
- Lagre innstillingene og problemet ditt er løst
Alternativ # 3:
Sjekk Java Home Path ved å angi riktig Java-miljøbanevariabel.
Konklusjon:
Gjennom denne artikkelen prøvde vi å diskutere noen av de viktige kommentarene og attributtene som ofte brukes av testere. Imidlertid er det flere kommentarer i TestNG som ikke brukes ofte, for eksempel @AfterGroups, @BeforeGroups og så videre som brukes når du jobber med grupper i prosjektets testskript.
Så bruk merknadene ovenfor i henhold til dine krav. Det anbefales alltid å ikke gjøre prosjektoppsettet i testmetoden. I testmetoden skriv kjernevirksomhetslogikken som skal testes.
hvordan du bruker team foundation server
Forsikre deg om at systemet ditt er utstyrt med Java 1.5-versjoner eller nyere, ellers kan Eclipse vise en feil om at merknader ikke støttes på systemet ditt.
Håper denne artikkelen hjelper deg med TestNG-merknader. Gi oss beskjed hvis det er noen kommentarer eller spørsmål.
Anbefalt lesing
- Hvordan bruke TestNG Framework for å lage selenskript - TestNG Selen Tutorial # 12
- Selen Find Element By Text Tutorial med eksempler
- 30+ beste selenopplæringsprogrammer: Lær selen med virkelige eksempler
- Agurk Selen Tutorial: Agurk Java Selen WebDriver Integration
- Introduksjon til Selen WebDriver - Selenium Tutorial # 8
- Effektiv Selen Scripting og feilsøking av scenarier - Selenium Tutorial # 27
- Feilsøking av selen-skript med logger (Log4j-opplæring) - Selen-opplæring # 26
- Python DateTime Tutorial med eksempler