learn how use testng annotations selenium
TestNG, som de fleste af jer ved, er en automatisering ramme, der er meget brugt i selen . Det er vigtigt for alle testere at forstå kommentarerne, der bruges under arbejdet med TestNG.
For at sige det enkelt er TestNG-annoteringer kodelinjer, der indsættes i programmet / forretningslogikken for at kontrollere, hvordan nedenstående metoder skal køres.
I denne artikel vil jeg fokusere på vigtigheden af forskellige typer af kommentarer og deres anvendelse.
Nedenfor har jeg delt den opsætning, der blev brugt til mit projekt. Dette behøver ikke nødvendigvis følges for dit projekt.
Kommentarerne varierer afhængigt af dine projektkrav. Imidlertid vil eksekveringsstrømmen være den samme.
Forudsætninger:
- Installer TestNG i Eclipse. Kontrollere denne vejledning om installationsvejledning .
- JDK - Java-udviklingssæt
- Kommentarer kan kun bruges med Java 1.5-version eller nyere
Før vi skriver testskripter eller opretter et projekt, skal vi kende det hierarki, hvor annoteringerne fungerer. Udførelsen forbliver altid den samme.
For eksempel, kompilér og kør nedenstående script og bemærk eksekveringsordren. Det vil være som følger:
- BeforeSuite
- Før test
- BeforeClass
- Før metode
- Test sag 1
- Efter metode
- Før metode
- Test sag 2
- Efter metode
- Efter skole
- 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 bryde testscriptprocessen i nedenstående trin:
- Skriv forretningslogikken for din test, og indsæt ovenfor TestNG-kommentarer i din kode
- Tilføj oplysningerne om din test (f.eks. Klassens navn, grupperne, metoderne du vil køre osv.) I en testng.xml fil.
- Kør TestNG
Men spørgsmålet er stadig - hvilke oplysninger skal vi give i ovenstående kommentarer?
Se på de vigtige trin, vi kan opnå ved hjælp af ovenstående kommentarer:
# 1) @Prøve
Dette er hoveddelen af vores automatiseringsscript, hvor vi skriver forretningslogikken, de ting, vi vil automatisere. Vi kan videregive attributter til vores testmetode.
Nedenfor er listerne over attributter, som vi kan overføre til vores testmetode:
- kør altid : Dette bruges, når vi vil sikre os, at en metode altid kører, selvom de parametre, som metoden afhænger af, fejler. Hvis den er sat til sand, kører denne testmetode altid. For eksempel: @Test (altidRun = sand)
- dataProvider : TestNG dataProvider bruges til at levere alle data til parametrering. For eksempel. @Test (dataProvider = “Hej”).
- dataProviderClass : Dette er klassen, hvorfra vi videregiver dataene til dataudbyderen. I vores tilfælde er dataProvider-klassens navn “Hej”.
- afhænger af grupper : Det er listen over grupper, denne metode afhænger af. For eksempel: @Test (grupper = {“By”, ”Stat”})
- afhænger af metoder: Denne kommando bruges til at udføre en metode baseret på dens afhængige metode. For eksempel: @Test (afhængerOnMethods = {“OpenBrowser”, ”databasen er op”})
- beskrivelse : Det er beskrivelsen for metoden. For eksempel: @Test (beskrivelse = “testmetode”)
- invocationCount : Det refererer til det antal gange, en metode skal påberåbes. Det fungerer som en løkke. For eksempel: @Test (invocationCount = 7) . Derfor vil denne metode udføres 7 gange.
- invocationTimeOut : Dette refererer til det maksimale antal millisekunder, som en metode skal tage for al invocationCount at gennemføre. Denne attribut ignoreres, hvis invocationCount ikke er angivet. For eksempel: @Test (invocationCount = 7, invocationTimeOut = 30)
- prioritet : Denne kommando indstiller testmetodens prioritet. Lavere prioriteter planlægges først. For eksempel: @Test (prioritet = 1)
#to)@BeforeSuite og @AfterSuite
I @BeforeSuite bemærket metode, kan du konfigurere og starte selen chauffører og i @AfterSuite annoteret metode, kan du stoppe Selenium-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 bemærket metode, kan du konfigurere dine Firefox-egenskaber, initialisere din driver og så videre og ind @Efter skole kommenteret 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 bemærket metode, kan du kontrollere databaseforbindelse, før du udfører din testmetode og ind @AfterMethod bemærket metode, kan du lukke din databaseforbindelse
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 indstille dine Firefox-profilindstillinger og ind @AfterTest metode, kan du lægge noget kode, der genererer testresultatet og sende det til stakeholderne
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 vigtigste aspekt, der skal bemærkes her, når du arbejder med kommentarer, er at dit system skal være udstyret med Java 1.5-version eller højere, ellers kan Eclipse muligvis vise en fejl, at kommentarer ikke understøttes på dit system.
Overvej nu et tilfælde, hvor dit system har den rigtige version af Java, der er nødvendig til kommentarer, men fejlen stadig vises.
Noget som nedenfor:
Syntaksfejl, kommentarer er kun tilgængelige, hvis kildeniveauet er 1,5 eller højere.
Hvad vil du gøre nu? Der er tre muligheder for at rette op på denne situation.
Lad os gennemgå det en efter en:
Mulighed 1:
- Gå til Eclipse, og højreklik på dit projekt
- Vælg Egenskaber
- Klik på Java Compiler
- Sørg for, at dit Compiler-overholdelsesniveau er 1,5 eller højere
- Gem indstillingerne, og dit problem er løst
Mulighed nr.2:
- Gå til Window-fanen i formørkelse
- Vælg Indstillinger
- Klik på Java og derefter på Compiler
- Sørg for, at dit Compiler-overholdelsesniveau er 1,5 eller højere
- Gem indstillingerne, og dit problem er løst
Mulighed nr.3:
Tjek din Java-hjemmesti ved at indstille den korrekte Java-miljøsti-variabel.
Konklusion:
Gennem denne artikel forsøgte vi at diskutere nogle af de vigtige kommentarer og attributter, som ofte bruges af testere. Der er dog flere kommentarer i TestNG, som ikke ofte bruges, f.eks @AfterGroups, @BeforeGroups og så videre, som bruges, når du arbejder med grupper i dit projekttestscript.
Så brug ovenstående kommentarer i henhold til dine krav. Det tilrådes altid ikke at foretage din projektopsætning i testmetode. I testmetode skriv kerneforretningslogikken, der skal testes.
sql udvikler interview spørgsmål og svar pdf
Sørg for, at dit system er udstyret med Java 1.5-versioner eller nyere, ellers kan Eclipse muligvis vise en fejl, at kommentarer ikke understøttes på dit system.
Håber denne artikel hjælper dig med TestNG-kommentarer. Giv os besked i tilfælde af eventuelle kommentarer eller spørgsmål.
Anbefalet læsning
- Sådan bruges TestNG Framework til oprettelse af selen-scripts - TestNG Selen Tutorial # 12
- Selen Find Element By Text Tutorial med eksempler
- 30+ bedste selen-tutorials: Lær selen med rigtige eksempler
- Agurk Selen Tutorial: Agurk Java Selen WebDriver Integration
- Introduktion til Selen WebDriver - Selen Tutorial # 8
- Effektiv Selen Scripting og fejlfinding af scenarier - Selen Tutorial # 27
- Fejlfinding af selen-scripts med logfiler (Log4j-vejledning) - Selen-tutorial # 26
- Python DateTime-tutorial med eksempler