how use testng framework
In de laatste paar tutorials hebben we licht geworpen op de standaard en veelgebruikte WebDriver-opdrachten. We leerden ook over de lokalisatiestrategieën van UI-elementen en hun opname in de testscripts. En daarom hebben we onze zeer ontwikkeld eerste WebDriver Automation Test Script
Als we verder gaan met deze tutorial, zouden we alles bespreken over TestNG, zijn functies en zijn toepassingen.
TestNG is een geavanceerd raamwerk ontworpen om de voordelen te benutten door zowel de ontwikkelaars als testers. Voor mensen die JUnit al gebruiken, lijkt TestNG niet anders met enkele geavanceerde functies. Met de start van de frameworks heeft JUnit een enorme winst behaald populariteit in de Java-applicaties, Java-ontwikkelaars en Java-testers, met opmerkelijk toenemende codekwaliteit.
Zie ook JUnit Tutorial en het gebruik ervan in Selenium-scripts
Ondanks dat het een eenvoudig te gebruiken en duidelijk kader is, heeft JUnit zijn eigen beperkingen waardoor het noodzakelijk is TestNG in beeld. TestNG is gemaakt door een veelgeprezen programmeur genaamd 'Cedric Beust'. TestNG is een open source framework dat wordt gedistribueerd onder de Apache-softwarelicentie en direct beschikbaar is om te downloaden.
Praten over onze vereiste om TestNG met WebDriver te introduceren, is dat het een efficiënt en effectief testresultaatformaat biedt dat op zijn beurt kan worden gedeeld met de belanghebbenden om een glimp op te vangen van de gezondheid van het product / applicatie, waardoor het nadeel van het onvermogen van WebDriver om te genereren test rapporten. TestNG heeft een ingebouwd mechanisme voor het afhandelen van uitzonderingen waardoor het programma kan worden uitgevoerd zonder onverwachts te worden beëindigd.
Zowel TestNG als JUnit behoren tot dezelfde familie van Unit Frameworks, waarbij TestNG een uitgebreide versie van JUnit is en op grotere schaal wordt gebruikt in het huidige testtijdperk.
Wat je leert:
- Kenmerken van TestNG
- TestNG-installatie in Eclipse
- Oprichting van een voorbeeld TestNG-project
- TestNG-klasse maken
- Het TestNG-script uitvoeren
- HTML-rapporten
- Prioriteit instellen in TestNG
- Code doorlopen
- TestNG-annotaties
- Gevolgtrekking
- Aanbevolen literatuur
Kenmerken van TestNG
- Ondersteuning voor annotaties
- Ondersteuning voor parametrering
- Geavanceerde uitvoeringsmethodologie waarvoor geen testsuites hoeven te worden gemaakt
- Ondersteuning voor gegevensgestuurd testen met behulp van gegevensproviders
- Hiermee kan de gebruiker uitvoeringsprioriteiten instellen voor de testmethoden
- Ondersteunt een bedreigingsveilige omgeving bij het uitvoeren van meerdere threads
- Ondersteunt gemakkelijk integratie met verschillende tools en plug-ins zoals build-tools (Ant, Maven etc.), Integrated Development Environment (Eclipse).
- Vergemakkelijkt de gebruiker met effectieve middelen voor het genereren van rapporten met behulp van ReportNG
Er zijn verschillende voordelen die TestNG superieur maken aan JUnit. Sommige ervan zijn:
- Voorafgaande en gemakkelijke annotaties
- Uitvoeringspatronen kunnen worden ingesteld
- Gelijktijdige uitvoering van testscripts
- Afhankelijkheden van testgevallen kunnen worden ingesteld
Annotaties worden voorafgegaan door een '@' -symbool in zowel TestNG als JUnit.
Dus laten we nu aan de slag gaan met het installatie- en implementatiegedeelte.
Online raster voor automatisering van seleniumtests
# 1) LambdaTest
TestNG-framework kan het beste worden gebruikt met een cloud Selenium Grid zoals LambdaTest, waarmee u parallelle tests kunt uitvoeren op 2000+ echte browser- en besturingssystemen, zonder gedoe met het onderhouden van een intern Selenium Grid.
U kunt een verscheidenheid aan logboeken krijgen, zoals opdrachtlogboeken, netwerklogboeken, onbewerkte Selenium-logboeken, metadata, enz., Samen met een volledige video-opname van uw Selenium-testscript voor foutopsporing.
LambdaTest biedt ook integraties met meerdere CI / CD-tools zoals Jenkins, Travis CI, CircleCI, etc. voor continu testen. Met LambdaTest kunt u ook integreren met tal van projectbeheertools voor eenvoudige bugregistratie.
Bezoek de LambdaTest-websiteTestNG-installatie in Eclipse
Volg de onderstaande stappen om TestNG downloaden en installeren op eclipse:
Stap 1 Start eclipse IDE -> Klik op de Help-optie in het menu -> Selecteer de optie 'Eclipse Marketplace ..' in de vervolgkeuzelijst.
Stap 2 Typ het trefwoord 'TestNG' in het zoektekstvak en klik op de knop 'Go', zoals hieronder weergegeven.
Stap 3 Zodra de gebruiker op de knop 'Go' klikt, worden de resultaten weergegeven die overeenkomen met de zoekreeks. Nu kan de gebruiker op de knop Installeren klikken om TestNG te installeren.
Stap 4 Zodra de gebruiker op de knop Installeren klikt, wordt de gebruiker gevraagd een venster te openen om de installatie te bevestigen. Klik op de knop 'Bevestigen'.
Stap 5 In de volgende stap vraagt de applicatie u om de licentie te accepteren en vervolgens op de knop 'Voltooien' te klikken.
Stap 6 De installatie is nu gestart en de voortgang is als volgt te zien:
We worden geadviseerd om onze eclips opnieuw te starten om de aangebrachte wijzigingen weer te geven.
Na het opnieuw opstarten kan een gebruiker de TestNG-installatie verifiëren door naar 'Voorkeuren' te navigeren vanuit de optie 'Venster' in de menubalk. Raadpleeg de volgende afbeelding voor hetzelfde.
(Klik op afbeelding om vergroot te bekijken)
Oprichting van een voorbeeld TestNG-project
Laten we beginnen met het maken van het TestNG-project in eclipse IDE.
Stap 1 Klik op de optie Bestand in het menu -> Klik op Nieuw -> Selecteer Java-project.
Stap 2 Voer de projectnaam in als 'DemoTestNG' en klik op de knop 'Volgende'. Als afsluitende stap klikt u op de knop 'Voltooien' en uw Java-project is klaar.
Stap 3 De volgende stap is het configureren van de TestNG-bibliotheek in het nieuw gemaakte Java-project. Klik voor hetzelfde op het tabblad 'Bibliotheken' onder Buildpad configureren. Klik op 'Bibliotheek toevoegen' zoals hieronder weergegeven.
Stap 4 De gebruiker zou worden onderworpen aan een dialoogvenster dat hem / haar promoot om de bibliotheek te selecteren die moet worden geconfigureerd. Selecteer TestNG en klik op de knop 'Volgende' zoals hieronder in de afbeelding wordt weergegeven. Klik op het einde op de knop 'Voltooien'.
De TestNG is nu toegevoegd aan het Java-project en de vereiste bibliotheken zijn te zien in de pakketverkenner bij het uitbreiden van het project.
Voeg alle gedownloade Selenium-bibliotheken en potten toe aan het bouwpad van het project, zoals geïllustreerd in de vorige tutorial.
TestNG-klasse maken
Nu we alle basisinstellingen hebben gedaan om aan de slag te gaan met het maken van testscripts met TestNG. Laten we een voorbeeldscript maken met TestNG.
Stap 1 Vouw het 'DemoTestNG' -project uit en ga naar de map 'src'. Klik met de rechtermuisknop op het 'src' -pakket en ga naar Nieuw -> Overig.
Stap 2 Vouw de TestNG-optie uit en selecteer de klasse-optie 'TestNG' en klik op de knop 'Volgende'.
Stap 3 Verstrek de vereiste details als volgt. Specificeer de bronmap, pakketnaam en de TestNG-klassenaam en klik op de knop Voltooien. Zoals blijkt uit de onderstaande afbeelding, kan de gebruiker ook verschillende TestNG-notaties controleren die in het testklasseschema zouden worden weerspiegeld. TestNG-annotaties zullen later in deze sessie worden besproken.
De bovengenoemde TestNG-klasse zou worden gemaakt met het standaardschema.
Nu we de basisbasis voor het TestNG-testscript hebben gemaakt, kunnen we nu de eigenlijke testcode injecteren. We gebruiken dezelfde code die we in de vorige sessie hebben gebruikt.
Scenario
- Start de browser en open 'gmail.com'.
- Controleer de titel van de pagina en druk het verificatieresultaat af.
- Voer de gebruikersnaam en het wachtwoord in.
- Klik op de knop Aanmelden.
- Sluit de webbrowser.
Code
Code Uitleg met betrekking tot TestNG
1) @Test - @Test is een van de TestNG-annotaties Deze annotatie laat de programma-uitvoering weten dat die methode geannoteerd als @Test een testmethode is. Om verschillende TestNG-annotaties te kunnen gebruiken, moeten we het pakket “ importeren org.testng.annotaties. * ”.
twee) Er is geen methode main () nodig bij het maken van testscripts met TestNG. De uitvoering van het programma gebeurt op basis van annotaties.
3) In een verklaring hebben we de Assert-klasse gebruikt terwijl we de verwachte en de werkelijke waarde vergeleken. Assert class wordt gebruikt om verschillende verificaties uit te voeren. Om verschillende beweringen te kunnen gebruiken, moeten we ' importeren org.testng.Assert ”.
Het TestNG-script uitvoeren
Het TestNG-testscript kan op de volgende manier worden uitgevoerd:
=> Klik met de rechtermuisknop ergens binnen de klasse in de editor of de java-klasse in de pakketverkenner, selecteer de optie 'Uitvoeren als' en klik op 'TestNG Test'.
TestNG-resultaat wordt weergegeven in twee vensters:
- Console-venster
- TestNG-resultaatvenster
Raadpleeg de onderstaande screencasts voor de resultaatvensters:
dot net interviewvragen en antwoorden voor ervaren
(Klik op afbeelding om vergroot te bekijken)
HTML-rapporten
TestNG wordt geleverd met een geweldige mogelijkheid om door gebruikers leesbare en begrijpelijke HTML-rapporten te genereren voor de testuitvoeringen. Deze rapporten kunnen in elk van de browsers worden bekeken en kunnen ook worden bekeken met de ingebouwde browserondersteuning van Eclipse.
Volg de onderstaande stappen om het HTML-rapport te genereren:
Stap 1 Voer de nieuw gemaakte TestNG-klasse uit. Vernieuw het project met de TestNG-klasse door er met de rechtermuisknop op te klikken en de optie 'Vernieuwen' te selecteren.
Stap 2 Een map met de naam 'test-output' zal in het project worden gegenereerd op het mapniveau 'src'. Vouw de map 'test-output' uit en open het bestand 'emailable-report.html' met de Eclipse-browser. Het HTML-bestand toont het resultaat van de recente uitvoering.
Stap 3 Het HTML-rapport wordt geopend in de eclipse-omgeving. Raadpleeg de onderstaande afbeelding voor hetzelfde.
Vernieuw de pagina om de resultaten voor nieuwe uitvoeringen te zien, indien aanwezig.
Prioriteit instellen in TestNG
Codefragment
Code doorlopen
Als een testscript uit meer dan één testmethode bestaat, kunnen de uitvoeringsprioriteit en -volgorde worden ingesteld met behulp van TestNG-annotatie '@Test' en door een waarde in te stellen voor de parameter 'prioriteit'.
In het bovenstaande codefragment zijn alle methoden geannoteerd met de hulp @Test en zijn de prioriteiten ingesteld op 0, 1 en 2. De volgorde van uitvoering waarin de testmethoden zouden worden uitgevoerd, is dus:
- Methode 1
- Methode 2
- Methode 3
Ondersteuning voor annotaties
Er is een aantal annotaties beschikbaar in TestNG en JUnit. Het subtiele verschil is dat TestNG wat meer geavanceerde annotaties aan JUnit biedt.
TestNG-annotaties
Hieronder volgt de lijst met de meest bruikbare en gunstige annotaties in TestNG:
Annotatie | Omschrijving |
---|---|
@Na de les | De annotatie informeert het systeem dat de methode geannoteerd als @AfterClass moet worden uitgevoerd na het uitvoeren van de laatste testmethode binnen dezelfde testklasse |
@Test | De annotatie laat het systeem weten dat de methode geannoteerd als @Test een testmethode is |
@BeforeSuite | De annotatie informeert het systeem dat de methode geannoteerd als @BeforeSuite moet worden uitgevoerd voordat de tests in de hele suite worden uitgevoerd |
@AfterSuite | De annotatie laat het systeem weten dat de methode geannoteerd als @AfterSuite moet worden uitgevoerd nadat de tests in de hele suite zijn uitgevoerd |
@BeforeTest | De annotatie informeert het systeem dat de methode geannoteerd als @BeforeTest moet worden uitgevoerd voordat een testmethode binnen dezelfde testklasse wordt uitgevoerd |
@AfterTest | De annotatie informeert het systeem dat de methode geannoteerd als @AfterTest moet worden uitgevoerd na het uitvoeren van een testmethode binnen dezelfde testklasse |
@Voor klas | De annotatie informeert het systeem dat de methode geannoteerd als @BeforeClass moet worden uitgevoerd voordat de eerste testmethode binnen dezelfde testklasse wordt uitgevoerd |
@Weerplaza | De annotatie informeert het systeem dat de methode geannoteerd als @BeforeMethod moet worden uitgevoerd voordat een en elke testmethode binnen dezelfde testklasse wordt uitgevoerd |
@AfterMethod | De annotatie informeert het systeem dat de methode geannoteerd als @AfterMethod moet worden uitgevoerd na het uitvoeren van elke testmethode binnen dezelfde testklasse |
@WillemII | De annotatie informeert het systeem dat de methode geannoteerd als @BeforeGroups een configuratiemethode is die een groep inschakelt en die moet worden uitgevoerd voordat de eerste testmethode van de groep wordt uitgevoerd |
@AfterGroups | De annotatie informeert het systeem dat de methode geannoteerd als @AfterGroups een configuratiemethode is die een groep inschakelt en die moet worden uitgevoerd na het uitvoeren van de laatste testmethode van de groep |
Notitie : Veel van de bovengenoemde annotaties kunnen ook worden uitgeoefend in het JUnit 3- en JUnit 4-framework.
Gevolgtrekking
Via deze tutorial hebben we geprobeerd je kennis te laten maken met een op Java gebaseerd testraamwerk genaamd TestNG. We begonnen de sessie met de installatie van het framework en gingen verder met het maken van scripts en geavanceerde onderwerpen. We hebben alle annotaties van TestNG besproken. We hebben ons eerste TestNG-testscript geïmplementeerd en uitgevoerd met behulp van annotaties en beweringen.
Artikel samenvatting:
- TestNG is een geavanceerd raamwerk dat zo is ontworpen dat zowel de ontwikkelaars als testers profiteren van de voordelen.
- TestNG is een open source framework dat wordt gedistribueerd onder de Apache-softwarelicentie en direct beschikbaar is om te downloaden.
- TestNG wordt beschouwd als superieur aan JUnit vanwege de geavanceerde functies.
- Kenmerken van TestNG
- Ondersteuning voor annotaties
- Geavanceerde uitvoeringsmethodologie waarvoor geen testsuites hoeven te worden gemaakt
- Ondersteuning voor parametrering
- Ondersteuning voor gegevensgestuurd testen met behulp van gegevensproviders
- Prioriteiten stellen voor de uitvoering van de testmethoden
- Ondersteunt een bedreigingsveilige omgeving bij het uitvoeren van meerdere threads
- Ondersteunt gemakkelijk integratie met verschillende tools en plug-ins zoals build-tools (Ant, Maven etc.), Integrated Development Environment (Eclipse).
- Vergemakkelijkt de gebruiker met effectieve middelen voor het genereren van rapporten met behulp van ReportNG
- Voordelen van TestNG ten opzichte van JUnit
- Voorafgaande en eenvoudige annotaties toegevoegd
- Uitvoeringspatronen kunnen worden ingesteld
- Gelijktijdige uitvoering van testscripts
- Afhankelijkheden van testgevallen kunnen worden ingesteld
- TestNG is gratis beschikbaar en kan eenvoudig worden geïnstalleerd in de Eclipse IDE met Eclipse Market.
- Na installatie zou TestNG beschikbaar zijn als bibliotheek binnen de Eclipse-omgeving.
- Maak een nieuw Java-project en configureer het buildpad met behulp van een TestNG-bibliotheek.
- Maak een nieuwe TestNG-klasse door het gemaakte TestNG-project uit te vouwen en naar de map 'src' te gaan. Klik met de rechtermuisknop op het 'src' -pakket en ga naar Nieuw -> Overig. Selecteer de optie TestNG-klasse.
- @Test is een van de annotaties van TestNG. Deze annotatie laat de programma-uitvoering weten dat die methode geannoteerd als @Test een testmethode is. Om verschillende TestNG-annotaties te kunnen gebruiken, moeten we het pakket “ importeren org.testng.annotaties. * ”.
- Er is geen methode main () nodig bij het maken van testscripts met TestNG.
- We gebruiken de Assert-klasse terwijl we de verwachte en de werkelijke waarde vergelijken. Assert class wordt gebruikt om verschillende verificaties uit te voeren. Om verschillende beweringen te kunnen gebruiken, moeten we ' importeren org.testng.Assert ”.
- Als een testscript uit meer dan één testmethode bestaat, kunnen de uitvoeringsprioriteit en -volgorde worden ingesteld met behulp van TestNG-annotatie '@Test' en door een waarde in te stellen voor de parameter 'prioriteit'.
- TestNG heeft de mogelijkheid om automatisch leesbare testuitvoeringsrapporten te genereren. Deze rapporten kunnen in elk van de browsers worden bekeken en kunnen ook worden bekeken met de ingebouwde browserondersteuning van Eclipse.
Volgende les # 13 : Als we verder gaan met de aankomende tutorials in de Selenium-serie, zouden we ons concentreren op het omgaan met de verschillende soorten webelementen die beschikbaar zijn op de webpagina's. Daarom in de volgende tutorial zullen we onze focus concentreren op 'dropdowns' en zullen we hun behandelingsstrategieën oefenen. We bespreken ook de Select-klasse van WebDriver en de methoden om waarden in de vervolgkeuzelijsten te selecteren.
Een opmerking voor de lezers : Terwijl onze volgende tutorial van de Selenium-serie zich in de verwerkingsmodus bevindt, kunnen lezers beginnen met het maken van hun eigen standaard WebDriver-scripts met behulp van het TestNG-framework.
Neem voor meer geavanceerde scripts en concepten zoveel mogelijk annotaties en beweringen op in uw TestNG-klassen en voer ze uit in de TestNG-omgeving. Analyseer ook de HTML-rapporten die door TestNG zijn gegenereerd.
Aanbevolen literatuur
- Firebug gebruiken voor het maken van Selenium-scripts - Selenium-zelfstudie # 4
- Inleiding tot JUnit Framework en het gebruik ervan in Selenium Script - Selenium Tutorial # 11
- Leer hoe u TestNG-annotaties in selenium gebruikt (met voorbeelden)
- Cucumber Selenium Tutorial: Cucumber Java Selenium WebDriver Integration
- Elementen zoeken in Chrome- en IE-browsers voor het bouwen van Selenium-scripts - Selenium-zelfstudie # 7
- Selenium Framework maken en toegang krijgen tot testgegevens vanuit Excel - Selenium Tutorial # 21
- Generics en Testsuites maken - Selenium Tutorial # 22
- Diepgaande Eclipse-zelfstudies voor beginners