how use testng framework
Under de senaste handledningarna belyser vi de grundläggande och vanliga WebDriver-kommandona. Vi lärde oss också om lokaliseringsstrategier för UI-element och deras inkludering i testmanusen. Och därför utvecklade vi vårt mycket första WebDriver Automation Test Script .
Fortsatt med denna handledning skulle vi diskutera allt om TestNG, dess funktioner och dess applikationer.
TestNG är ett avancerat ramverk utformad på ett sätt att utnyttja fördelarna från både utvecklare och testare. För personer som redan använder JUnit verkar TestNG inte annorlunda med vissa avancerade funktioner. Med början av ramarna fick JUnit en enorm popularitet över Java-applikationer, Java-utvecklare och Java-testare, med anmärkningsvärt ökad kodkvalitet.
Se även=> JUnit Tutorial och dess användning i Selen-skript
Trots att det är ett lättanvänt och enkelt ramverk har JUnit sina egna begränsningar som ger upphov till behovet av att ta med sig TestNG in i bilden. TestNG skapades av en hyllad programmerare som heter 'Cedric Beust'. TestNG är en öppen källkodsram som distribueras under Apache Software License och är lätt tillgänglig för nedladdning.
Att prata om vårt krav på att introducera TestNG med WebDriver är att det ger ett effektivt och effektivt testresultatformat som i sin tur kan delas med intressenterna för att få en glimt av produktens / applikationens hälsa och därmed eliminera nackdelen med WebDrivers oförmåga att generera testrapporter. TestNG har en inbyggd mekanism för undantagshantering som låter programmet köras utan att oväntat avslutas.
Både TestNG och JUnit tillhör samma familj av Unit Frameworks där TestNG är en utökad version till JUnit och används mer omfattande under den aktuella testtiden.
Vad du kommer att lära dig:
- Funktioner av TestNG
- TestNG-installation i förmörkelse
- Skapande av prov TestNG-projekt
- Skapa TestNG-klass
- Köra TestNG-skriptet
- HTML-rapporter
- Ställa in prioritet i TestNG
- Kodgenomgång
- TestNG-kommentarer
- Slutsats
- Rekommenderad läsning
Funktioner av TestNG
- Stöd för anteckningar
- Stöd för parametrering
- Metod för avancerad körning som inte kräver att testsviter skapas
- Stöd för datadriven testning med hjälp av dataleverantörer
- Gör att användaren kan ställa in exekveringsprioriteter för testmetoderna
- Stöder hotsäker miljö vid körning av flera trådar
- Stöder lätt integration med olika verktyg och plugin-program som byggverktyg (Ant, Maven etc.), Integrated Development Environment (Eclipse).
- Underlättar användaren med effektiva metoder för rapportgenerering med ReportNG
Det finns olika fördelar som gör TestNG överlägsen JUnit. Några av dem är:
- Avancerade och enkla kommentarer
- Utförandemönster kan ställas in
- Samtidigt utförande av testskript
- Testberoende beroenden kan ställas in
Anteckningar föregås av en “@” -symbol i både TestNG och JUnit.
Så låt oss komma igång med installations- och implementeringsdelen.
Online-nät för selen testautomatisering
# 1) LambdaTest
TestNG-ramverk används bäst med ett moln Selen Grid som LambdaTest som hjälper dig att utföra parallella tester på 2000+ riktiga webbläsare och operativsystem utan att behöva underhålla ett internt Selen Grid.
Du kan få en mängd olika loggar som kommandologgar, nätverksloggar, råa Selen-loggar, metadata etc. tillsammans med en fullständig videoinspelning av ditt Selen-testskript för felsökning.
LambdaTest erbjuder också integrationer med flera CI / CD-verktyg som Jenkins, Travis CI, CircleCI, etc. för kontinuerlig testning. LambdaTest låter dig också integreras med många verktyg för projekthantering för enkel loggning.
=> Besök LambdaTest webbplatsTestNG-installation i förmörkelse
Följ stegen nedan för att testa nedladdning och installation på Eclipse:
Steg 1: Starta Eclipse IDE -> Klicka på hjälpalternativet i menyn -> Välj alternativet 'Eclipse Marketplace ..' i rullgardinsmenyn.
Steg 2: Ange nyckelordet “TestNG” i söktextrutan och klicka på “Gå” -knappen som visas nedan.
Steg 3: Så snart användaren klickar på 'Gå' -knappen visas resultaten som matchar söksträngen. Nu kan användaren klicka på Installera-knappen för att installera TestNG.
Steg 4: Så snart användaren klickar på Installera-knappen uppmanas användaren ett fönster för att bekräfta installationen. Klicka på knappen 'Bekräfta'.
Steg 5: I nästa steg kommer applikationen att uppmana dig att acceptera licensen och klicka sedan på 'Slutför' -knappen.
Steg 6: Installationen initieras nu och framstegen kan ses på följande sätt:
Vi rekommenderas att starta om vår förmörkelse för att återspegla de gjorda ändringarna.
Vid omstart kan en användare verifiera TestNG-installationen genom att navigera till 'Inställningar' från 'Fönster' i menyraden. Se följande bild för samma sak.
(Klicka på bilden för att se förstorad)
Skapande av prov TestNG-projekt
Låt oss börja med skapandet av TestNG-projektet i eclipse IDE.
Steg 1: Klicka på alternativet Arkiv i menyn -> Klicka på Nytt -> Välj Java-projekt.
Steg 2: Ange projektnamnet som “DemoTestNG” och klicka på “Nästa” -knappen. Som ett avslutande steg klickar du på knappen 'Slutför' så är ditt Java-projekt klart.
Steg 3: Nästa steg är att konfigurera TestNG-biblioteket i det nyskapade Java-projektet. Klicka på fliken 'Bibliotek' under Konfigurera byggvägen. Klicka på 'Lägg till bibliotek' som visas nedan.
Steg 4: Användaren skulle utsättas för en dialogruta som uppmuntrar honom / henne att välja det bibliotek som ska konfigureras. Välj TestNG och klicka på 'Nästa' -knappen som visas nedan i bilden. I slutändan klickar du på knappen 'Slutför'.
TestNG läggs nu till i Java-projektet och de nödvändiga biblioteken kan ses i paketutforskaren när projektet expanderas.
Lägg till alla nedladdade Selenium-bibliotek och burkar i projektets byggväg så som illustreras i föregående handledning.
Skapa TestNG-klass
Nu när vi har gjort alla grundläggande inställningar för att komma igång med att skapa testskriptet med TestNG. Låt oss skapa ett exempelskript med TestNG.
Steg 1: Expandera “DemoTestNG” -projektet och korsa till “src” -mappen. Högerklicka på 'src' -paketet och navigera till Nytt -> Övrigt.
Steg 2: Expandera TestNG-alternativet och välj klassalternativet “TestNG” och klicka på knappen “Nästa”.
Steg 3: Ange nödvändiga uppgifter enligt följande. Ange källmappen, paketnamnet och testNG-klassnamnet och klicka på knappen Slutför. Som det framgår av nedanstående bild kan användaren också kontrollera olika TestNG-noteringar som skulle återspeglas i testklasschemat. TestNG-anteckningar skulle diskuteras senare i denna session.
Ovan nämnda TestNG-klass skulle skapas med standardschemat.
Nu när vi har skapat den grundläggande grunden för TestNG-testskriptet, låt oss nu injicera den faktiska testkoden. Vi använder samma kod som vi använde under föregående session.
Scenario:
- Starta webbläsaren och öppna “gmail.com”.
- Verifiera sidans titel och skriv ut verifieringsresultatet.
- Ange användarnamn och lösenord.
- Klicka på knappen Logga in.
- Stäng webbläsaren.
Koda:
package TestNG; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.Test; public class DemoTestNG { public WebDriver driver = new FirefoxDriver(); String appUrl = 'https://accounts.google.com'; @Test public void gmailLogin() { // launch the firefox browser and open the application url driver.get('https://gmail.com'); // maximize the browser window driver.manage().window().maximize(); // declare and initialize the variable to store the expected title of the webpage. String expectedTitle = ' Sign in - Google Accounts '; // fetch the title of the web page and save it into a string variable String actualTitle = driver.getTitle(); Assert.assertEquals(expectedTitle,actualTitle); // enter a valid username in the email textbox WebElement username = driver.findElement(By.id('Email')); username.clear(); username.sendKeys('TestSelenium'); // enter a valid password in the password textbox WebElement password = driver.findElement(By.id('Passwd')); password.clear(); password.sendKeys('password123'); // click on the Sign in button WebElement SignInButton = driver.findElement(By.id('signIn')); SignInButton.click(); // close the web browser driver.close(); } }
Kodförklaring med avseende på TestNG
1) @Test - @Test är en av de TestNG-anteckningar . Denna kommentar låter programkörningen veta att metoden som antecknats som @Test är en testmetod. För att kunna använda olika TestNG-anteckningar måste vi importera paketet “ importera org.testng.annotations. * ”.
2) Det finns inget behov av huvud () -metoden när du skapar testskript med TestNG. Programmets genomförande görs på basis av anteckningar.
3) I ett uttalande använde vi Assert-klassen medan vi jämförde förväntat och det verkliga värdet. Assert-klass används för att utföra olika verifieringar. För att kunna använda olika påståenden måste vi importera “ importera org.testng.Assert ”.
Köra TestNG-skriptet
TestNG-testskriptet kan köras på följande sätt:
=> Högerklicka var som helst i klassen inom redigeraren eller java-klassen i paketutforskaren, välj alternativet 'Kör som' och klicka på 'TestNG-test'.
TestNG-resultatet visas i två fönster:
- Konsolfönster
- TestNG-resultatfönster
Se nedanstående skärmutsändningar för resultatfönstren:
vad är testplanering och teststrategi
(Klicka på bilden för att se förstorad)
HTML-rapporter
TestNG har en stor förmåga att generera användarläsbara och begripliga HTML-rapporter för testkörningar. Dessa rapporter kan visas i valfri webbläsare och de kan också visas med hjälp av Eclipses webbläsarstöd.
Följ stegen nedan för att generera HTML-rapporten:
Steg 1: Kör den nyligen skapade TestNG-klassen. Uppdatera projektet som innehåller klassen TestNG genom att högerklicka på det och välja alternativet 'Uppdatera'.
Steg 2: En mapp med namnet “test-output” ska genereras i projektet på “src” -mappnivå. Expandera mappen 'test-output' och öppna filen 'emailable-report.html' med Eclipse-webbläsaren. HTML-filen visar resultatet av den senaste körningen.
Steg 3: HTML-rapporten ska öppnas i förmörkelsemiljön. Se bilden nedan för detsamma.
Uppdatera sidan för att se resultaten för eventuella nya avrättningar.
Ställa in prioritet i TestNG
Kodavsnitt
package TestNG; import org.testng.annotations.*; public class SettingPriority { @Test(priority=0) public void method1() { } @Test(priority=1) public void method2() { } @Test(priority=2) public void method3() { } }
Kodgenomgång
Om ett testskript består av mer än en testmetod kan exekveringsprioriteten och sekvensen ställas in med TestNG-anteckningen '@Test' och genom att ställa in ett värde för parametern 'prioritet'.
I kodavsnittet ovan antecknas alla metoder med hjälp @Test och prioriteringarna är 0, 1 och 2. Således är körningsordningen i vilken testmetoderna skulle utföras:
- Metod 1
- Metod2
- Metod 3
Stöd för anteckningar
Det finns ett antal kommentarer i TestNG och JUnit. Den subtila skillnaden är att TestNG ger några fler förskottanteckningar till JUnit.
TestNG-kommentarer
Nedan följer listan över de mest användbara och gynnsamma anteckningarna i TestNG:
Anteckning | Beskrivning |
---|---|
@Efter lektionen | Anmärkningen meddelar systemet att metoden som antecknats som @AfterClass måste köras efter att den senaste testmetoden har utförts inom samma testklass |
@Testa | Anmärkningen meddelar systemet att metoden som antecknats som @Test är en testmetod |
@BeforeSuite | Anmärkningen meddelar systemet att metoden som antecknats som @BeforeSuite måste köras innan testerna körs i hela sviten |
@AfterSuite | Anmärkningen meddelar systemet att metoden som antecknats som @AfterSuite måste köras efter att testerna har utförts i hela sviten |
@BeforeTest | Anmärkningen meddelar systemet att metoden som antecknats som @BeforeTest måste köras innan någon testmetod körs inom samma testklass |
@AfterTest | Anmärkningen meddelar systemet att metoden som antecknats som @AfterTest måste köras efter att någon testmetod har utförts inom samma testklass |
@Innan lektionen | Anmärkningen meddelar systemet att metoden som antecknats som @BeforeClass måste köras innan den första testmetoden körs inom samma testklass |
@BeforeMethod | Anmärkningen meddelar systemet att metoden som antecknats som @BeforeMethod måste köras innan någon testmetod körs inom samma testklass |
@AfterMethod | Anmärkningen meddelar systemet att metoden som antecknats som @AfterMethod måste köras efter att alla testmetoder har utförts inom samma testklass |
@BeforeGroups | Anmärkningen meddelar systemet att metoden som antecknats som @BeforeGroups är en konfigurationsmetod som tar med en grupp och som måste köras innan den första testmetoden i gruppen körs |
@AfterGroups | Anmärkningen meddelar systemet att metoden som antecknats som @ AfterGroups är en konfigurationsmetod som tar en grupp och som måste köras efter att den sista testmetoden i gruppen har körts |
Notera : Många av de ovan nämnda anteckningarna kan också utövas i JUnit 3 och JUnit 4.
Slutsats
Genom denna handledning försökte vi göra dig bekant med ett java-baserat testramverk som heter TestNG. Vi började sessionen med installationen av ramverket och flyttade med skapandet av skript och avancerade ämnen. Vi diskuterade alla anteckningar från TestNG. Vi implementerade och körde vårt första TestNG-testskript med hjälp av kommentarer och påståenden.
Artikelöversikt:
- TestNG är ett avancerat ramverk utformat på ett sätt att utnyttja fördelarna för både utvecklare och testare.
- TestNG är en öppen källkodsram som distribueras under Apache Software License och är lätt tillgänglig för nedladdning.
- TestNG anses vara överlägsen JUnit på grund av dess avancerade funktioner.
- Funktioner i TestNG
- Stöd för anteckningar
- Metod för avancerad körning som inte kräver att testsviter skapas
- Stöd för parametrering
- Stöd för datadriven testning med hjälp av dataleverantörer
- Ställa in genomförandeprioriteringar för testmetoderna
- Stöder hotsäker miljö vid körning av flera trådar
- Stöder lätt integration med olika verktyg och plugin-program som byggverktyg (Ant, Maven etc.), Integrated Development Environment (Eclipse).
- Underlättar användaren med effektiva metoder för rapportgenerering med ReportNG
- Fördelar med TestNG jämfört med JUnit
- Lagt till förskott och enkla kommentarer
- Utförandemönster kan ställas in
- Samtidigt utförande av testskript
- Testberoende beroenden kan ställas in
- TestNG är fritt tillgängligt och kan enkelt installeras i Eclipse IDE med Eclipse Market.
- Efter installationen skulle TestNG vara tillgängligt som ett bibliotek i Eclipse-miljön.
- Skapa ett nytt Java-projekt och konfigurera byggvägen med hjälp av ett TestNG-bibliotek.
- Skapa en ny TestNG-klass genom att utöka det skapade TestNG-projektet och gå till dess 'src' -mapp. Högerklicka på 'src' -paketet och navigera till Nytt -> Övrigt. Välj alternativet TestNG-klass.
- @Test är en av kommentarerna från TestNG. Denna kommentar låter programkörningen veta att metoden som antecknats som @Test är en testmetod. För att kunna använda olika TestNG-anteckningar måste vi importera paketet “ importera org.testng.annotations. * ”.
- Det finns inget behov av huvud () -metoden när du skapar testskript med TestNG.
- Vi använder Assert-klassen när vi jämför förväntat och det verkliga värdet. Assert-klass används för att utföra olika verifieringar. För att kunna använda olika påståenden måste vi importera “ importera org.testng.Assert ”.
- Om ett testskript består av mer än en testmetod kan exekveringsprioriteten och sekvensen ställas in med TestNG-anteckningen '@Test' och genom att ställa in ett värde för parametern 'prioritet'.
- TestNG har möjlighet att generera mänskliga läsbara testkörningsrapporter automatiskt. Dessa rapporter kan visas i vilken webbläsare som helst och de kan också visas med Eclipses inbyggda webbläsarstöd.
Nästa handledning # 13 : När vi går vidare med de kommande handledningarna i Selen-serien, koncentrerar vi oss på att hantera de olika typerna av webbelement som finns på webbsidorna. Därför, i nästa handledning skulle vi koncentrera vårt fokus på ”dropdowns” och kommer att utöva deras hanteringsstrategier. Vi skulle också diskutera om WebDrivers Select-klass och dess metoder för att välja värden i rullgardinsmenyerna.
En kommentar till läsarna : Medan vår nästa handledning av Selenium-serien är i bearbetningsläge kan läsare börja skapa sina egna grundläggande WebDriver-skript med hjälp av TestNG-ramverket.
För mer avancerade skript och koncept, inkludera så många anteckningar och påståenden i dina TestNG-klasser och kör dem med TestNG-miljö. Analysera också HTML-rapporter som genereras av TestNG.
Rekommenderad läsning
- Hur man använder Firebug för att skapa selen-skript - Selen-handledning nr 4
- Introduktion till JUnit Framework and Its Use in Selenium Script - Selenium Tutorial # 11
- Lär dig hur du använder TestNG-anteckningar i selen (med exempel)
- Gurka Selen Tutorial: Gurka Java Selen WebDriver Integration
- Hur man hittar element i Chrome- och IE-webbläsare för att bygga selen-skript - Selen-handledning # 7
- Selen Framework Creation and Accessing Test Data from Excel - Selenium Tutorial # 21
- Skapa generika och testdräkter - Selen Tutorial # 22
- Fördjupade förklaringar om förmörkelser för nybörjare