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
read more