Alles wat u moet weten over TestNG-annotaties in Selenium



Dit artikel over TestNG-annotaties in Selenium zal je helpen de verschillende annotaties te begrijpen die TestNG ondersteunt in Selenium met behulp van voorbeelden.

Sinds het concept van is geïntroduceerd, veel testmethoden zijn geëvolueerd, paradigma's zijn veranderd, maar de vereisten hebben op de een of andere manier gezegevierd om constant te blijven. Een van die methoden is TestNG wat ons helpt om de testgevallen te groeperen in verschillende secties van code met behulp van Annotaties. Maar hoe werkt het? Laten we dit concept begrijpen via het medium van dit artikel over TestNG-annotaties in .

Ik zal onderstaande onderwerpen in dit artikel behandelen:





Inleiding tot TestNG

TestNG betekent Test de volgende generatie en het is een open-source testautomatiseringsraamwerk geïnspireerd door JUnit en NUnit. Goed, TestNG is niet alleen geïnspireerd, maar het is een verbeterde versie van deze twee frameworks. Dus wat is de upgrade hier? De upgrade met TestNG is dat het extra functionaliteit biedt zoals testannotaties, groepering, prioriteitstelling, parametrisering en sequentietechnieken in de code die eerder niet mogelijk waren.

Inleiding tot TestNG - TestNG-annotaties - EdurekaHet beheert niet alleen testcases, maar zelfs gedetailleerde testrapporten kunnen ook worden verkregen door TestNG te gebruiken. Er zal een gedetailleerde samenvatting zijn met het aantal testgevallen dat is mislukt. Ook kunnen de bugs op zijn vroegst nauwkeurig worden gelokaliseerd en verholpen. Nu u weet wat TestNG is, laten we eens kijken waarom u TestNG in Selenium kunt gebruiken.



Waarom TestNG gebruiken in selenium?

Softwareontwikkelaars van over de hele wereld zullen het er unaniem over eens zijn dat het schrijven van code in testgevallen een groot deel van hun foutopsporingstijd bespaart. Waarom? Dat komt omdat testcases helpen bij het creëren van robuuste en foutloze code door de volledige code op te splitsen in kleinere testcases, en vervolgens door elk van deze testcases te evalueren om te slagen / mislukken, kunt u foutloze code creëren. Sinds ondersteunt de uitvoering van code in testgevallen niet, TestNG komt in beeld wat zal helpen bij het uitvoeren van de testgevallen.

TestNG ondersteunt ook de volgende functies:

  • Het genereert het rapport in een correct formaat dat een aantal uitgevoerde testgevallen, het aantal mislukte testgevallen en testgevallen die zijn overgeslagen, bevat.
  • Meerdere testgevallen kunnen gemakkelijker worden gegroepeerd door ze te converteren naar het TestNG.xml-bestand. Hier kunt u de prioriteiten instellen om de testcases uit te voeren.
  • Met TestNG kunt u meerdere testcases uitvoeren op meerdere browsers, d.w.z. cross-browser testen .
  • Het testraamwerk kan eenvoudig worden geïntegreerd met tools zoals Maven, Jenkins, etc.

Nu u weet wat TestNG is en waarom het wordt gebruikt, gaan we verder en kennen we de verschillende annotaties die TestNG ondersteunt in Selenium.

TestNG-annotaties

TestNG-annotaties in Selenium worden gebruikt om de volgende uit te voeren methode te besturen. Testannotaties worden voor elke methode in de testcode gedefinieerd. Als een methode niet is voorafgegaan door annotaties, wordt die methode genegeerd en wordt deze niet uitgevoerd als onderdeel van de testcode. Om ze te definiëren, moeten methoden eenvoudig worden geannoteerd met ‘ @Test ‘.



Typen TestNG-annotaties:

Hieronder staat de lijst met annotaties die TestNG ondersteunt in selenium.

  • @BeforeMethod: Een methode met deze annotatie wordt uitgevoerd voor elke @test geannoteerde methode.
  • @AfterMethod: This annotatie wordt uitgevoerd na elke @test geannoteerde methode.
  • @Voor klas: Deze annotatie wordt eerder uitgevoerd eerste test methode uitvoering. Het wordt slechts één keer per klas uitgevoerd.
  • @AfterClass: T zijn annotatie wordt uitgevoerd nadat alle testmethoden in de huidige klasse zijn uitgevoerd
  • @BeforeTest: Een methode met deze annotatie wordt eerder uitgevoerd eerste test geannoteerde methode.
  • @AfterTest: Een methode met deze annotatie wordt uitgevoerd wanneer alle @Test geannoteerde methoden voltooien de uitvoering van de klassen die zich in de TestNG.xml het dossier.
  • @BeforeSuite: Deze annotatie wordt uitgevoerd slechts één keer eerder alle tests in de suite zijn uitgevoerd
  • @AfterSuite: Een methode met deze annotatie wordt uitgevoerd eenmaal daarna de uitvoering van alle tests in de suite zijn uitgevoerd
  • @BeforeGroups: Deze geannoteerde methode wordt uitgevoerd voor de eerste testrun van die specifieke groep.
  • @AfterGroups: Deze geannoteerde methode wordt uitgevoerd na alle testmethoden van die groep voltooit zijn uitvoering.

Dus dit gaat allemaal over annotaties in TestNG. Laten we nu verder gaan en begrijpen hoe we een eerste testcase kunnen schrijven met TestNG.

Testcases maken met TestNG-annotaties

De verschillende stappen die nodig zijn om testcases te maken met TestNG Annotation zijn als volgt:

  1. Maak een project en voeg de TestNG-bibliotheek toe.
  2. Maak een klassenbestand en codeer het programma
  3. Schrijf ten slotte een XML-bestand en voer het uit op TestNG Suite.

Als je meer wilt weten over het schrijven van een testcase met TestNG, bekijk dan dit artikel op TestNG-zelfstudie . Laten we nu verder gaan en begrijpen hoe TestNG-annotaties u zullen helpen de testcases te groeperen en uw programma te configureren.

Testgeval 1:

In dit testgeval zal ik drie verschillende annotaties gebruiken en het programma coderen. Laten we eens kijken hoe we dat moeten doen met het onderstaande voorbeeld.

pakket co.edureka.pages import org.openqa.selenium.WebDriver import org.openqa.selenium.chrome.ChromeDriver import org.testng.Assert import org.testng.annotations.AfterTest import org.testng.annotations.BeforeTest import org.testng .annotations.Test public class AnnotationExample {public String baseUrl = 'https://www.edureka.co/' String driverPath = 'C: //Users//Neha_Vaidya//Desktop//chromedriver_win32//chromedriver.exe' openbare WebDriver driver @BeforeTest public void launchBrowser () {System.out.println ('Chrome-browser starten') System.setProperty ('webdriver.chrome.driver', driverPath) driver = nieuwe ChromeDriver () driver.get (baseUrl)} @Test public void verifyHomepageTitle () String verwachtTitle = 'Door een instructeur geleide online training met 24x7 levenslange ondersteuning @AfterTest public void terminateBrowser () {driver.close ()}}

In principe wil ik controleren of de daadwerkelijke titel van de Edureka-webpagina overeenkomt met de verwachte titel of niet. Dus ik gebruik eerst ‘ @BeforeTest ’ Annotatie en het maken van een instantie van het browserstuurprogramma en navigeren door de Edureka-website met behulp van de driver.get () methode. Dit zijn dus de stappen die vóór de test moeten worden uitgevoerd.

Vervolgens wil ik tijdens deze test controleren of de verwachte titel en de daadwerkelijke titel overeenkomen of niet. Daarom specificeer ik alle stappen met @Test Annotation. Ten slotte wil ik het stuurprogramma sluiten en de browser beëindigen na de test. Dat is waarom ik gebruik @AfterTest Annotatie en sluiten van de driver. Dus dit is hoe ik de volledige code in verschillende annotaties groepeer en de testcase uitvoer. Laten we het programma uitvoeren als TestNG Test en de uitvoer controleren.

U kunt in de momentopname zien dat de testcase met succes wordt uitgevoerd op een standaardtest en suite. Ook is de testcase geslaagd en is er ook geen storing.

Laten we nu nog een voorbeeld bekijken om de uitvoeringsstroom van verschillende annotaties grondig te begrijpen. Het is zeer noodzakelijk om de stroom van uitvoering van de annotaties te kennen. Laten we daarom de onderstaande momentopname eens bekijken om er meer over te weten.

De uitvoeringsstroom van annotaties is zoals weergegeven in de bovenstaande momentopname. Laten we nu nog een voorbeeld bekijken om hetzelfde te begrijpen.

Testgeval 2:

hoe sockets in java te gebruiken
pakket co.edureka.pages import org.testng.annotations.AfterClass import org.testng.annotations.AfterMethod import org.testng.annotations.AfterSuite import org.testng.annotations.AfterTest import org.testng.annotations.BeforeClass import org.testng .annotations.BeforeMethod import org.testng.annotations.BeforeSuite import org.testng.annotations.BeforeTest import org.testng.annotations.Test openbare klasse testngAnnotaties {// Testcase 1 @Test openbare leegte testCase1 () {System.out.println ('Test Case 1')} // Test Case 2 @Test public void testCase2 () {System.out.println ('Test Case 2')} @BeforeMethod public void beforeMethod () {System.out.println ('Before Method ')} @AfterMethod public void afterMethod () {System.out.println (' After Method ')} @BeforeClass public void beforeClass () {System.out.println (' Before Class ')} @AfterClass public void afterClass ( ) {System.out.println ('After Class')} @BeforeTest public void beforeTest () {System.out.println ('Before Test')} @AfterTest public void afterTest () {System.out.println ('After Test')} @BeforeSuite public void beforeSuite () {System.out.println ('Before Suite')} @AfterSuite public void afterSuite () {System.out.println ( 'After Suite')}}

In de bovenstaande code schrijf ik willekeurig alle methoden met annotaties. Ik volg de volgorde ervan niet. Maar als ik het programma uitvoer, volgt het dezelfde volgorde. Laten we nu de uitvoer bekijken.

[RemoteTestNG] gedetecteerd TestNG versie 6.14.2 Voor Suite Voor Test Voor Klasse Voor Methode Test Case 1 Na Methode Voor Methode Test Case 2 Na Methode Na Klasse Na Test GESLAAGD: testCase1 PASSED: testCase2 =========== ==================================== Standaardtest Uitgevoerde tests: 2, fouten: 0, overslaan: 0 ================================================= Na Suite = ============================================== Standaard suite Totaal aantal tests uitvoeren: 2, fouten: 0, overslaan: 0 ========================================= ========

Uit de bovenstaande uitvoer kun je zien dat zowel de testcases als Before Suite en After Suite slechts één keer zijn uitgevoerd. Ook is de test succesvol verlopen op de standaardtest en suite. Dit is hoe je de testcases moet uitvoeren met behulp van Annotaties.Dus dat brengt ons bij het einde van dit artikel over TestNG-annotaties in Selenium.

Ik hoop dat je de concepten hebt begrepen en dat het een toegevoegde waarde heeft voor je kennis. Als je nu meer inzicht wilt krijgen in Selenium, kun je het artikel lezen op .

Als je dit 'TestNG Annotations in Selenium ' relevant, bekijk de door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld.

Heeft u een vraag voor ons? Gelieve dit te vermelden in het commentaargedeelte van TestNG-annotaties in selenium artikel en we nemen contact met u op.