assertions selenium using junit
Deze Selenium-zelfstudie over beweringen legt uit wat beweringen in selenium zijn en verschillende soorten beweringen en beweringsmethoden met behulp van Junit- en TestNG-frameworks:
goede websites om gratis anime te kijken
Beweringen worden gebruikt voor het valideren van een testcase en helpen ons te begrijpen of een testcase is geslaagd of mislukt. De bewering wordt geacht te zijn vervuld als het werkelijke resultaat van een aanvraag overeenkomt met dat van het verwachte resultaat.
Bij het automatiseren van webapplicaties met Selenium, moeten we onze tests valideren om te controleren of ze werken zoals verwacht of niet(dat wil zeggen, als het resultaat van een testcase is geslaagd / mislukt)
Bekijk hier de Selenium-beginnershandleiding.
Een testcase wordt pas als geslaagd beschouwd als aan alle beweringen is voldaan. Beweringen in Selenium kunnen worden afgehandeld door vooraf gedefinieerde methoden van Junit- en TestNG-frameworks, die in dit artikel in detail zullen worden uitgelegd.
Wat je leert:
- Beweringen in selenium
- Soorten beweringen in selenium
- Junit Assert Methods
- TestNG beweert methoden
- Voorbeeldprogramma's voor beweringen
- Gevolgtrekking
Beweringen in selenium
Assertions worden gebruikt om verschillende soorten validaties uit te voeren in de testcases, wat ons weer helpt om te beslissen of de testcase is geslaagd of niet. W.We beschouwen een test als succesvol als deze zonder enige uitzondering wordt uitgevoerd.
Video-tutorial over beweringen
Soorten beweringen in selenium
Er zijn twee soorten beweringen in Selenium en de indeling hangt af van hoe de bewering zich gedraagt nadat een voorwaarde is geslaagd of mislukt.
Hier zouden we twee soorten beweringen bespreken in Selenium
- Harde beweringen
- Zachte beweringen
Klik hier voor een voorbeeld testgevallen voor het testen van beweringen.
# 1) Harde beweringen (of gewoon beweringen)
Een harde bewering gaat pas door met de uitvoering als aan de beweringsvoorwaarde is voldaan.
Harde beweringen geven meestal een Assertion Error wanneer niet aan een assertion-voorwaarde is voldaan. De testcase wordt onmiddellijk gemarkeerd als Mislukt wanneer een voorwaarde voor harde bewering mislukt.
Een scenario om dit soort beweringen te gebruiken, is dat, wanneer u wilt verifiëren of u correct bent ingelogd en de test niet slaagt als u niet succesvol bent ingelogd, het geen zin heeft om verder te gaan als de voorwaarde ( login) zelf mislukt.
Laten we een ander voorbeeld nemen dat hier wordt geïllustreerd:
Overweeg een testcase om de titel van een webpagina te bevestigen.
In het voorbeeld bevat de variabele ‘ActualTitle’ de titeltekst van automatisering. ‘ExpectedTitle’ bevat de verwachte stringgegevens. Assert.assertEquals () controleert of beide tekst gelijk zijn. Het bovenstaande testgeval zal slagen en doorgaan naar de volgende regel van uitvoering, aangezien de werkelijke tekst en verwachte tekst hetzelfde zijn.
Console:
Beweren geslaagd.
GESLAAGD: VerifyTitle
Als hetzelfde testgeval is mislukt, wordt er een uitzondering gegenereerd en wordt de uitvoering bij dat exemplaar gestopt.
Laten we nu de verwachte titel in de verkeerde veranderen.
Troosten:
java.lang.AssertionError:verwacht [Welkom bij Amazon]maargevonden [Amazon.com: online winkelen voor elektronica, kleding, computers, boeken, dvd's en meer
Vanuit de console kunnen we zien dat de printinstructie is overgeslagen (System.out.println) omdat er een fout is opgetreden in de Assert-instructie en er een uitzondering is gegenereerd.
# 2) Zachte beweringen
Een zachte bewering gaat door met de volgende stap van de testuitvoering, zelfs als niet aan de beweringsvoorwaarde is voldaan.
Zachte beweringen zijn het soort beweringen dat niet automatisch een uitzondering genereert wanneer een bewering mislukt, tenzij daarom wordt gevraagd. Dit is handig als u meerdere validaties in een formulier uitvoert, waarvan slechts enkele validaties direct invloed hebben op het bepalen van de testcase-status.
Hier gebruiken we een klasse met de naam SoftAssert en de methode assertAll () wordt aangeroepen om alle uitzonderingen te verwijderen die tijdens de uitvoering zijn opgevangen. Wanneer softAssert wordt gebruikt, voert het assertion uit en als er een uitzondering wordt gevonden, wordt deze niet onmiddellijk gegenereerd, maar gaat het door totdat we de methode assertAll () aanroepen om alle gevangen uitzonderingen te verwijderen.
Het is verstandig om voor elke testcase verschillende objecten van de ‘SoftAssert’ -klasse te gebruiken.
Overweeg de testcase om de titel van de pagina te bevestigen
In het onderstaande voorbeeld zijn twee objecten van de ‘SoftAssert’ -klasse gemaakt om in twee verschillende testgevallen te gebruiken.
Troosten:
Werkelijke titel: Amazon.com: online winkelen voor elektronica, kleding, computers, boeken, dvd's en meer
Bewering 1 wordt uitgevoerd
Pictogram wordt weergegeven
Bewering 2 wordt uitgevoerd
java.lang.AssertionError: De volgende beweringen zijn mislukt:
verwacht [Welkom bij Amazon] maar gevonden [Amazon.com: online winkelen voor elektronica, kleding, computers, boeken, dvd's en meer]
Vanuit de console kunnen we begrijpen dat, hoewel de bewering een mislukking was in de eerste testcase (verifyTitle), de uitvoering doorging naar de volgende regel waarin de instructie - 'Assertion 1 wordt uitgevoerd' werd afgedrukt en pas nadat softAssert was aangeroepen, de uitzondering is gegooid.
Wanneer moet u harde en zachte bewering gebruiken?
Als u alle stappen van een testcase moet uitvoeren, zelfs nadat een bewering mislukt, en u wilt ook een beweringuitzondering rapporteren, kies dan voor Soft Assertions. Soft Assertions gebruiken in uw testscripts is een goede gewoonte en een effectieve manier om uw testuitvoering af te handelen
Als u wilt dat de uitvoering van uw testcase pas doorgaat nadat een bewering is goedgekeurd ( Bijvoorbeeld, Om een geldige login te verifiëren en pas daarna de andere stappen uit te voeren), gebruik dan Hard Assertions.
Junit Assert Methods
De verschillende soorten Junit Assert-methoden worden hieronder in detail uitgelegd.
# 1) assertEquals
assertequals-methode vergelijkt het verwachte resultaat met dat van het werkelijke resultaat. Het genereert een AssertionError als het verwachte resultaat niet overeenkomt met dat van het werkelijke resultaat en beëindigt de uitvoering van het programma op de assert equals-methode.
Syntaxis:
Voorbeeld:
String verwacht = 'https://www.google.com';
String actualURL = 'https://www.google.com';
Assert.assertEquals (verwachte, werkelijkeURL);
# 2) Beweren waar
asserttrue methode beweert dat een gespecificeerde voorwaarde waar is.
Het neemt twee parameters in, namelijk de ene is het bericht en de andere is de voorwaarde waartegen de bewering moet worden toegepast. Het genereert een AssertionError als niet is voldaan aan de voorwaarde die is doorgegeven aan de asserttrue-methode.
Syntaxis:
bericht - Bericht dat moet worden weergegeven in het geval van een Assertion Error.
conditie - Conditie waartegen de bewering moet worden toegepast.
Voorbeeld:
Assert.assertTrue ('Assert True testbericht', true);
# 3) BewerenFalse
assert false methode beweert dat een gespecificeerde voorwaarde false is.
Het neemt twee parameters in, namelijk de ene is het bericht en de andere is de voorwaarde waartegen de bewering moet worden toegepast. Het genereert een AssertionError als niet is voldaan aan de voorwaarde die is doorgegeven aan de assertfalse-methode.
Syntaxis:
bericht - Bericht dat moet worden weergegeven in het geval van een Assertion Error.
conditie - Conditie waartegen de bewering moet worden toegepast.
Voorbeeld:
Assert.assertFalse ('Assert false test message' false);
# 4) assertNull
assert null wordt gebruikt om te controleren of het opgegeven object een null-waarde bevat. Het neemt een object als parameter en genereert een AssertionError als het opgegeven object geen null-waarde heeft.
Syntaxis:
Voorbeeld:
DemoClass demo = nieuwe DemoClass ();
Assert.assertNull (demo);
# 5) assertNotNull
assert not null wordt gebruikt om te verifiëren dat een opgegeven object geen null-waarde bevat. Het neemt een object als parameter en genereert een AssertionError als het opgegeven object geen null-waarde bevat.
Syntaxis:
Voorbeeld:
DemoClass demo = nieuwe DemoClass ();
Assert.assertNotNull (demo);
# 6) assertSame
assert same method controleert of twee objecten die als parameters zijn opgegeven, naar hetzelfde object verwijzen. Het genereert een AssertionError als de opgegeven objecten niet naar hetzelfde object verwijzen met het opgegeven bericht.
Houd er rekening mee dat Assert same alleen de referenties van objecten vergelijkt, maar niet de werkelijke waarden.
Syntaxis:
Voorbeeld:
DemoClass1 demo1 = nieuwe DemoClass1 ();
DemoClass2 demo2 = nieuwe DemoClass2 ();
Assert.assertSame ('Twee objecten zijn gelijk', demo1, demo2);
# 7) assertNotSame
beweren niet hetzelfde verifieert dat twee objecten niet gelijk zijn. Als twee objecten naar hetzelfde object verwijzen, wordt er een AssertionError gegenereerd.
Merk op dat de assert niet dezelfde methode de referenties van objecten vergelijkt en niet de waarden die aanwezig zijn in de objecten.
Syntaxis:
Voorbeeld:
DemoClass1 demo1 = nieuwe DemoClass1 ();
DemoClass2 demo2 = nieuwe DemoClass2 ();
Assert.assertNotSame ('Twee objecten zijn niet gelijk', demo1, demo2);
# 8) assertArrayEquals
assert equals verifieert dat twee object-arrays gelijk zijn. Als beide arrays null-waarden bevatten, worden ze als gelijk beschouwd. Deze methode genereert een AssertionError met het opgegeven bericht als beide objectarrays niet als gelijk worden beschouwd.
verschil tussen b-boom en b + boom
Syntaxis:
message - Bericht dat moet worden weergegeven in het geval van een assertion error.
verwacht - Array van objecten.
actueel - Array van objecten.
Voorbeeld:
String [] verwacht = {'Mango', 'Apple', 'Banana'}
String [] actual = {'Mango', 'Apple', 'Banana'}
Assert.assertArrayEquals (verwacht, actueel);
TestNG beweert methoden
TestNG Assert-methoden zullen hetzelfde zijn als de Junit-assertiemethoden die hierboven zijn besproken. De burgemeester verschil tussen Junit en TestNG assertion-methoden staan het afhandelen van assertions in de weg.
TestNG biedt meer geavanceerde technieken voor het afhandelen van beweringen, zoals afhankelijke klassen, groepstests, geparametriseerde tests, enz.
Video-tutorials over TestNG Assert-methoden
Deel I
Deel II
Deel III
# 1) assertEquals
Deze methode wordt gebruikt om te bevestigen of twee gegevenswaarden gelijk zijn. We kunnen de waarden van verschillende gegevenstypen vergelijken, zoals string, boolean, integer. enz. Wanneer de verwachte en werkelijke waarden hetzelfde zijn, gaat de bewering zonder uitzondering over. Als dat niet het geval is, wordt er een AssertionError gegenereerd.
Gebruik : Dit soort bewering wordt gebruikt om het geval te verifiëren wanneer de gegevens die op de webpagina worden weergegeven, zijn zoals verwacht of volgens de gespecificeerde vereiste.
Syntaxis:
Parameters:
Actueel - De werkelijke waarde die we verwachten van automatisering.
Verwacht –De verwachte waarde.
Voorbeeld: Om dat te verifiëren, als de Amazon-startpagina een titel heeft met de tekst: ‘Amazon.com: online winkelen voor elektronica, kleding, computers, boeken, dvd's en meer '
Console:
Beweren geslaagd.
GESLAAGD: VerifyTitle
In het bovenstaande voorbeeld zijn twee strings gecontroleerd op gelijke waarden. Evenzo kan de gelijkheid van andere gegevenstypen zoals integer, boolean, etc. worden geverifieerd.
# 2) assertNotEquals
assertNotEquals wordt gebruikt om te controleren of twee gegevenswaarden niet gelijk zijn. Het is precies het tegenovergestelde van de werking van assertEquals Assertion. Telkens wanneer de verwachte en werkelijke waarden overeenkomen, mislukt de bewering met een uitzondering en markeert de testcase als 'mislukt'.
Gebruik : Dit wordt gebruikt in gevallen waarin we willen verifiëren dat elke gegevens uniek is op een webpagina. Bijvoorbeeld een telefoongids, waar geen 2 telefoonnummers hetzelfde zijn.
Syntaxis:
Parameters:
Actueel - De werkelijke waarde die we verwachten van automatisering.
Verwacht - De verwachte waarde.
Voorbeeld: Om te controleren of de pincodes van twee verschillende gebieden uniek / niet hetzelfde zijn.
Console:
Twee unieke pincodes zijn: 600012 && 600001
Beweren geslaagd.
PASSED: verifyAssertNotEqual
# 3) Beweren waar
assertTrue wordt gebruikt om te controleren of een bepaalde Booleaanse voorwaarde waar is. Deze bewering retourneert waar als de opgegeven voorwaarde slaagt, zo niet, dan wordt er een beweringsfout gegenereerd.
Syntaxis:
Parameters
BooleanCondition - Voorwaarde om te controleren of het retourtype Waar is.
Gebruik
Voorbeeld: Om te controleren of de knop Aanmelden aanwezig is op de startpagina van Amazon.in (beweer voor de weergave van de knop).
Hier controleert het of de Booleaanse voorwaarde - SignIn.IsDisplayed () geeft WAAR terug.
Voorbeeld: Om te controleren of er een knop op de webpagina staat.
Console:
Knop wordt weergegeven
GESLAAGD: verifyAssertTrue
# 4) BewerenFalse
assertFalse wordt gebruikt om te controleren of een bepaalde Booleaanse voorwaarde onwaar is. Met andere woorden, het retourtype van de opgegeven Booleaanse voorwaarde moet False zijn. Deze bewering is geslaagd als de opgegeven voorwaarde het retourneringstype FALSE heeft, zo niet, dan wordt er een beweringsfout gegenereerd.
Syntaxis:
Parameters
BooleanCondition - Voorwaarde om te controleren of het retourtype False is.
Gebruik : Een scenario waarin het kan worden gebruikt, is om te verifiëren of een element na een bepaalde actie niet op een webpagina aanwezig is.
Voorbeeld 1: De aanmeldingsknop mag niet worden weergegeven na het inloggen.
Dit geeft aan of de Booleaanse voorwaarde - SignIn.IsDisplayed () geeft FALSE terug.
Voorbeeld 2:
Om te controleren of een div verdwijnt na een bepaalde actie. Dus hier verifiëren we dat de div niet wordt weergegeven, of met andere woorden, beweren voor een valse voorwaarde op een weergegeven div.
Console:
Captcha div verdween uit het scherm
GESLAAGD:verifieerAssertFalse
# 5) assertNull
Deze bewering wordt gebruikt om te controleren of een object een null-retourwaarde heeft. Met andere woorden, het controleert of het resultaat nul is. Als het object Null is, wordt de bewering zonder enige uitzondering doorgegeven.
Syntaxis:
Parameters
Voorwerp - Elke gegevenswaarde die een nulwaarde bevat.
Gebruik:
Voorbeeld 1:
Stel vast of een string null is.
Voorbeeld 2:
Bevestig of de waarde van het stuurprogramma null is voordat u het Chrome-stuurprogramma start.
Hier is het stuurprogramma-object nul omdat het niet is gestart. Daarom zal AssertNull (stuurprogramma) een succes zijn omdat het heeft geverifieerd of het object ‘stuurprogramma’ een nulwaarde heeft
# 6) assertNotNull
Deze bewering verwacht een geldig retourtype, anders dan de Null-waarde. Met andere woorden, het controleert op een object als het niet Null is. Het retourtype kan Boolean, string, integer, list, etc. zijn. Als het object niet null is, wordt Assertion doorgegeven, zo niet, dan wordt een AssertionError gegenereerd.
Syntaxis:
Parameters
Voorwerp - Elke gegevenswaarde die een gegevenswaarde bevat.
Gebruik:
Voorbeeld 1: Beweren dat een string enkele gegevens bevat. Dat wil zeggen, het is niet Null.
Voorbeeld 2: Controleer of het stuurprogramma-object niet nul is na het starten van FirefoxDriver.
Hier wordt het stuurprogramma-object geïnitieerd naar het firefox-stuurprogramma en daarom heeft het ‘stuurprogramma'-object enige waarde omdat het niet is gestart. Daarom zal AssertNotNull (stuurprogramma) een succes zijn, aangezien het heeft geverifieerd of het object ‘stuurprogramma’ geen null-waarde bevat
Klik hier voor voorbeeldtestgevallen.
Voorbeeldprogramma's voor beweringen
Beweren is gelijk aan:
Code Verklaring:
De bovenstaande code demonstreert het gebruik van de AssertEquals-methode in eenvoudige bewoordingen.
- Zoals eerder besproken, neemt assert equals twee parameters over, namelijk verwacht resultaat en feitelijk resultaat. Als het verwachte resultaat niet overeenkomt met dat van het werkelijke resultaat, wordt een assertion-fout gegenereerd en wordt de uitvoering van het programma beëindigd bij de assert equals-methode.
- De bovenstaande code vergelijkt de door de gebruiker gedefinieerde tekenreekswaarde met de verwachte tekenreekswaarde.
- Houd er rekening mee dat het werkelijke resultaat in realtime een door de gebruiker gedefinieerde bewerking is waarvoor de waarde tijdens runtime wordt opgehaald en als parameter wordt doorgegeven aan de assert equals-methode.
Beweren waar:
Code Verklaring:
De bovenstaande code demonstreert het gebruik van de assertTrue-methode.
- We geven in eerste instantie de verwachte paginatitel door aan een variabele. We instantiëren vervolgens een object van het firefox-stuurprogramma en navigeren het naar de webpagina - https://www.google.com
- Later, met behulp van de assertsTrue-methode, vergelijken we de geopende paginatitel met die van de verwachte paginatitel. Als de geopende paginatitel niet overeenkomt met die van de verwachte titel, wordt een assertion-fout gegenereerd en wordt de uitvoering van het programma beëindigd met de assertTrue-methode.
- De bovenstaande code wordt alleen succesvol uitgevoerd als de daadwerkelijke paginatitel overeenkomt met die van de verwachte paginatitel.
Beweren vals:
Code Verklaring:
De bovenstaande code demonstreert het gebruik van de assertfalse-methode.
- We geven in eerste instantie de verwachte paginatitel door aan een variabele en instantiëren vervolgens een object van het firefox-stuurprogramma en navigeren naar de webpagina - https://www.google.com
- Later, met behulp van de assertfalse-methode, vergelijken we de geopende paginatitel met die van de verwachte paginatitel. Als de geopende paginatitel overeenkomt met die van de verwachte titel, wordt een assertion-fout gegenereerd en wordt de uitvoering van het programma beëindigd bij de assert false-methode.
- De bovenstaande code wordt alleen succesvol uitgevoerd als de daadwerkelijke paginatitel niet overeenkomt met die van de verwachte paginatitel.
End-to-end-code voor beweringen
Hieronder vindt u een voorbeeld van een end-to-end-code voor beweringen. Voor de eenvoud hebben we het volgende scenario gebruikt.
Scenario:
- Open de webpagina: https://www.google.com in de Firefox-browser.
- Controleer of de geopende paginatitel gelijk is aan die van de verwachte paginatitel met behulp van de asserttrue-methode.
- Voer in het zoektekstvak het zoekterm in: Selenium.
- Druk op de Enter-knop op het toetsenbord.
- Controleer of de geopende paginatitel op de pagina met zoekresultaten equivalent is aan die van de verwachte paginatitel met behulp van de assertequals-methode en assertfalse-methode.
- Sluit de browser.
Voorbeeldcode:
Code uitvoer:
In eerste instantie wordt het Firefox-browservenster geopend met de webpagina: https://www.google.com. De Asserttrue-methode controleert of de geopende paginatitel overeenkomt met die van de verwachte paginatitel - Google.
internet of things-bedrijven om naar te kijken
Het script zal het zoekwoord invoeren als Selenium en op de enter-knop drukken.
Assertfalse en assertequals methoden vergelijken of de werkelijke paginatitel van het scherm met zoekresultaten overeenkomt met die van de verwachte titel - ‘selenium - Google Zoeken’. De browser wordt dan gesloten via de methode driver.close.
Console-uitgang:
De onderstaande tekst is de console-uitvoer op Eclipse IDE
Vermijd veelgemaakte fouten tijdens het gebruik van Assert Class
1. Stel dat uw project JUnit-, TestNG- en Python-bibliotheken heeft geconfigureerd
twee Maar in je script gebruik je TestNG-annotatie en kies je per ongeluk Junit Assertion, dan wordt je Assert-klasse verouderd. Zie onderstaande screenshot
3. Het is dus erg belangrijk om de juiste Assert Class te kiezen, voor TestNg kies je de enige org.TestNG Assert class
Vier. Kies voor Junit de klasse org.junit.Assert enzovoort.
5. Om Soft Assertion uit te voeren, moeten we de methode assertAll () verplicht aanroepen
6. Als een bewering mislukt, wordt er een assertiefout gegenereerd, niet de uitzondering
Gevolgtrekking
We kunnen dit artikel over beweringen in selenium besluiten met de onderstaande aanwijzingen:
- Een bewering wordt gebruikt om het werkelijke resultaat van een aanvraag te vergelijken met het verwachte resultaat.
- Een testcase wordt pas als geslaagd beschouwd als aan alle beweringen is voldaan.
- AssertEquals-methode vergelijkt het verwachte resultaat met dat van het werkelijke resultaat. Het genereert een AssertionError als het verwachte resultaat niet overeenkomt met dat van het werkelijke resultaat en beëindigt de programma-uitvoering met de assertequals-methode.
- AssertTrue methode beweert dat een gespecificeerde voorwaarde waar is. Het genereert een AssertionError als niet is voldaan aan de voorwaarde die is doorgegeven aan de asserttrue-methode.
- AssertFalse-methode beweert dat een opgegeven voorwaarde onwaar is. Het genereert een AssertionError als niet is voldaan aan de voorwaarde die is doorgegeven om de valse methode te beweren.
- AssertEquals-, AssertTrue- en AssertFalse-methoden zijn de meest gebruikte beweringen in Selenium.
In de komende tutorial , zullen we verschillende voorbeelden bespreken die in real-time projectscenario's worden gebruikt en begrijpen hoe beweringen worden gebruikt in overeenstemming met het doel.
We hopen dat dit artikel uw kennis over beweringen in selenium heeft verrijkt !!
Lees de Easy Selenium-trainingsserie door.
Aanbevolen literatuur
- Inleiding tot JUnit Framework en het gebruik ervan in Selenium Script - Selenium Tutorial # 11
- TestNG Framework gebruiken voor het maken van Selenium-scripts - TestNG Selenium-zelfstudie # 12
- Leer hoe u TestNG-annotaties in selenium gebruikt (met voorbeelden)
- Cucumber Selenium Tutorial: Cucumber Java Selenium WebDriver Integration
- Integratie van selenium met JMeter
- Inleiding tot Selenium WebDriver - Selenium Tutorial # 8
- Meest populaire testautomatiseringsraamwerken met voor- en nadelen van elk - Selenium Tutorial # 20
- 30+ beste selenium-zelfstudies: leer selenium met echte voorbeelden