Webapplicaties zijn essentieel geworden voor bedrijven die op zoek zijn naar geavanceerde manieren om verbinding te maken met hun doelgroep en deze te bedienen in de digitale wereld. Gezien het belang van web-apps in de bedrijfsvoering van tegenwoordig, ongeacht de branche, moeten ze uitgebreid worden getest om ervoor te zorgen dat ze hoogwaardige gebruikerservaringen bieden.
Automatiseringstests versnellen de levenscyclus van softwareontwikkeling. Bovendien kunnen verschillende belanghebbenden, zoals ontwikkelaars, QA’s en niet-technische teams, bij het toepassen van de Behavior Driven Development (BDD) -benadering van ontwikkeling actief samenwerken in het project.
De scenario’s worden geschreven op basis van het verwachte gedrag van de software en het wordt getest om te controleren of het overeenkomt met de genoemde scenario’s.
Afbeeldingsbron
Deze scenario’s worden gedocumenteerd met behulp van een domeinspecifieke taal zoals augurk. In elk testscenario worden natuurlijke taalconstructies die kleine Engels-achtige zinnen vormen, gebruikt om het gedrag en de verwachte uitkomst van een toepassing te beschrijven. Dit wordt gedaan met behulp van een speciale softwaretool zoals Cucumber, waarmee geautomatiseerde acceptatietests geschreven in augurk kunnen worden uitgevoerd.
Wat is Cucumber?
Cucumber is een open-source testraamwerk dat ondersteunt Behavior Driven Development voor het automatiseren van testen van webapplicaties. De tests worden eerst geschreven in een eenvoudige scenariovorm die het verwachte gedrag van het systeem beschrijft vanuit het perspectief van de gebruiker.
Komkommer wordt voornamelijk gebruikt voor acceptatietests en is geschreven in Ruby, terwijl de tests zijn geschreven in Augurk, een niet-technische en door mensen leesbare taal.
Komkommer- en seleniumtesten: een samenwerkingsaanpak
Terwijl geautomatiseerde seleniumtesten de ontwikkelingscyclus nauwkeuriger en sneller maken, voegt Cucumber een extra voorsprong toe aan het, waardoor het meer kan worden samengewerkt voor de niet-technische belanghebbenden van het management. Zeer gunstig voor het testen van gebruikersacceptatie, waarbij de testscenario’s grotendeels worden bepaald door gedrag, versterkt komkommer het automatiseringsonderzoek.
Het komkommer-raamwerk
Het komkommer-raamwerk bestaat voornamelijk uit drie hoofdonderdelen – Feature File, Stapdefinities en het Test Runner-bestand.
Feature-bestand
Een op zichzelf staande eenheid of een enkele functionaliteit (zoals een login) voor een project kan een Feature worden genoemd. Elk van deze functies heeft scenario’s die moeten worden getest met Selenium geïntegreerd met komkommer. Een bestand dat gegevens opslaat over functies, hun beschrijvingen en de te testen scenario’s, wordt een functiebestand genoemd.
Komkommertests worden geschreven in deze functiebestanden die worden opgeslagen met de extensie – “.feature” . Een Feature File kan een beschrijving krijgen om de documentatie beter leesbaar te maken.
Voorbeeld:
De Login-functie op een website
Feature File Name: userLogin .feature
Beschrijving: De gebruiker zal in staat zijn om in te loggen door de juiste gebruikersnaam en wachtwoord in de juiste velden in te voeren. De gebruiker moet naar de homepage worden geleid als de ingevoerde gebruikersnaam en het wachtwoord correct zijn.
Trefwoorden zoals GIVEN, WHEN en THEN die worden gebruikt om de test in Cucumber te schrijven, worden Annotaties genoemd.
- GIVEN gebruiker navigeert naar inlogpagina door Firefox te openen
- WANNEER de gebruiker het juiste < gebruikersnaam > EN < wachtwoord waarden
- DAN wordt de gebruiker doorverwezen naar t hij startpagina
Stapdefinities
Nu de features in de feature-bestanden zijn geschreven, moet de code voor het gerelateerde scenario worden gedraaid. Om te weten welke batch code moet worden uitgevoerd voor een bepaald scenario, komen Steps Definitions in beeld. Een Steps Definitions-bestand slaat de toewijzingsgegevens op tussen elke stap van een scenario dat is gedefinieerd in het feature-bestand en de code die moet worden uitgevoerd.
Step Definitions kunnen zowel Java- als Selenium-opdrachten gebruiken voor de Java-functies die zijn geschreven om een feature-bestand naar de code.
Voorbeeld:
package StepDefinition;import cucumber.api.java.en.Given;import cucumber.api.java.en.Then;import cucumber.api.java.en.When;public class Steps{@Given("^user navigates to the login page by opening Firefox$")//Code to Open Firefox Browser and launch the login page of application to define the GIVEN step of the feature@When("^user enters correct username and password values$")//take inputs for username and password fields using find element by xpath. Put the correct username and password values as inputs to define the WHEN step of the feature@Then ("^user gets directed to homepage$”)//Direct to the Homepage of the application as a result of correct username and password inputs in the WHEN step. This would define the THEN step of the feature
Test Runner File
Om de test uit te voeren, heeft een Test Runner-bestand nodig, wat een JUnit Test Runner-klasse is met de Step Definition-locatie en de andere primaire metagegevens die nodig zijn om de test uit te voeren.
Het Test Runner-bestand gebruikt de @RunWith () -annotatie van JUnit voor testen uitvoeren. Het gebruikt ook de @CucumberOptions-annotatie om de locatie van feature-bestanden, stapdefinities, rapportage-integraties, enz. Te definiëren.
Voorbeeld:
Test Runner Class in cucumberTest-pakket, met de feature-bestanden in “src / test / Feature” locatie en stapdefinitiebestanden in “src / main / stepDefinition” map.
Cucumber Framework opzetten
Voordat je gaat ontdekken hoe Cucumber werkt en hoe je moet schrijven een Cucumber Selenium-test, laten we eerst kijken hoe we Cucumber kunnen opzetten.Het installeren van de onderstaande vereisten is alles wat een gebruiker nodig heeft om te beginnen met het testen van komkommerautomatisering.
Vereisten voor het instellen van komkommer en selenium
- Java installeren
- Installeren Eclipse IDE voor Java
- Installeer Maven
- Installeer Selenium Webdriver
- Installeer JUnit
- Installeer Cucumber
Hoe schrijf je een test in Cucumber voor Selenium Automation?
Laten we verder gaan met het scenario van de login-functie en een voorbeeldtest maken in Cucumber. Deze code voert het inlogscenario uit dat wordt beschreven in het onderdeel Functie en opent de startpagina van de website na het invoeren van de juiste gebruikersnaam en wachtwoord.
Praktische tips voor het testen van komkommers
Hier zijn enkele van de beste praktijken bij het testen van komkommers:
- De versies van komkommer-java, komkommer-junit en komkommer-kernpotten zouden hetzelfde moeten zijn voor naadloze connectiviteit.
- Een after hook to the code voor het vastleggen van screenshots wanneer de test mislukt, kan helpen bij het diagnosticeren van het probleem en het debuggen ervan.
- Gebruik tags voor het organiseren van tests op basis van tag-definitie. Dit helpt in gevallen waarin niet alle tests elke keer hoeven te worden uitgevoerd. Dergelijke tests kunnen met tags worden gemarkeerd en alleen worden uitgevoerd als dat nodig is. Dit bespaart tijd en verwerkingscapaciteit van het systeem en de bronnen.
- Zoals altijd is het belangrijk om de Cucumber Selenium-tests op echte browsers en apparaten uit te voeren. BrowserStack biedt een Cloud Selenium Grid van 2000+ echte browsers en apparaten voor testdoeleinden – zowel live als geautomatiseerd. Meld u eenvoudig aan, kies de vereiste combinatie apparaat-browser-besturingssysteem en begin gratis websites te testen.
Voer gratis seleniumtests uit
Testautomatisering is absoluut essentieel voor gelijke tred houden met de groeiende eisen van snellere levering en optimale kwaliteit van testers. Met het Cucumber-framework in Selenium kunnen testscenario’s worden geschreven met behulp van natuurlijke taalconstructies die het verwachte gedrag van de software voor een bepaald scenario beschrijven, waardoor het ideaal is voor het testen van gebruikersacceptatie.
Ten slotte, het testen van websites op een echt apparaat cloud is de enige manier om volledige nauwkeurigheid van de resultaten te garanderen. Kies dus altijd voor echte apparaattests om de prestaties van de website, de compatibiliteit tussen browsers en de kwaliteit van de gebruikerservaring die het biedt volledig te verifiëren.