karate framework tutorial
Denne opplæringen er en introduksjon til API-testing ved hjelp av Karate Framework. Lær om strukturen til Karate Test Script og trinn for å bygge det første testskriptet:
API er et akronym som står for Application Programming Interface. Enkelt sagt kan vi definere det som et programvareformidler som tillater kommunikasjon mellom applikasjoner.
Vi trenger API-testing fordi:
- Resultatene blir publisert raskere, og derfor ikke lenger ventet på å se om API-et fungerer bra.
- Med raskere respons blir distribusjonen av disse APIene også raskere, og gir dermed rask behandlingstid.
- Tidlig feiloppdagelse, selv før brukergrensesnittet til appen er opprettet, tillater oss å redusere risiko og rette feil.
- Levering i stor skala mulig på kortere tid.
For å kunne jobbe med API-testing har vi forskjellige verktøy tilgjengelig i markedet som Postman, Mocha og Chai. Disse har vist gode resultater og effektiv bruk for testing av APIer, men disse er sterkt kodepåvirket. For å kunne bruke disse, må man være teknisk forsvarlig og kjent med programmeringsspråk.
Karate Framework løser vakkert dette problemet med de forrige programvareverktøyene.
Hva du vil lære:
Hva er Karate Framework
Karate? La oss snakke Karate. Er det den fra Japan? Hva tror du? Kan være at den store Bruce Lee hadde utviklet dette på fritiden.
Selv om vi ønsker å dykke ned i de interessante røttene til Karate, la oss foreløpig snakke om Karate verktøy som er utviklet av Peter Thomas , et av de flotte verktøyene som kommer API-testere til unnsetning.
Karate-rammeverket følger agurkstil for å skrive programmet som følger BDD-tilnærmingen. Syntaksen er lett å forstå av ikke-programmerere. Og dette rammeverket er det eneste API-testverktøyet som har kombinert API-automatisering og ytelsestesting til et enkelt frittstående verktøy.
Det gir brukerne muligheten til å utføre testtilfellene parallelt og utføre JSON & XML-kontroller.
Med denne informasjonen kan visse viktige punkter trekkes ut for å forstå Karate-verktøyet i detalj:
- Karate er et BDD-testrammeverk i stedet for en TDD.
- Den er designet for å være enkel for ikke-programmerere. Denne funksjonen er en spillveksler, da den gir mer bruk og tilgang for mange mennesker uavhengig av teknisk bakgrunn eller kapasitet.
- Den bruker agurkfunksjonsfilen og agurkspråket for å skrive testen som er veldig lett å forstå.
Alle disse funksjonene gjør det til et av de mest gunstige automatiseringsverktøyene som er tilgjengelige i dag.
History Of Karate Framework
Laget av ' Peter Thomas ’ i 2017 tar denne programvaren sikte på å gjøre testfunksjonalitet lett tilgjengelig for alle. Den ble skrevet på Java, og de fleste forventet at filene også skulle være på samme språk, men heldigvis er det ikke tilfelle.
Snarere bruker den agurkefiler, som er et resultat av forholdet til agurkrammen. Automatiseringsprogramvaren er en utvidelse av Agurk, og arver derfor bruken av Gherkins-filen i driften. Den store forskjellen mellom de to er at Karate ikke bruker Java under testing, men agurk gjør det.
Dette er nettopp grunnen til at den henvender seg til ikke-programmerere, da agurkasyntaksen er superlestelig og omfattende. Dette er grunnen til at Karate er best egnet og anbefalt for å komme inn i en verden av automatiserte API-testing.
Følgende er noen funksjoner i Karate Testing Framework:
- Bruker språk som er lett å forstå.
- Det krever ingen teknisk programmeringskunnskap som Java.
- Den er basert på de populære agurkstandardene.
- Lett å lage et rammeverk.
- Parallell testing er kjernefunksjonaliteten som selges av Karate, og derfor trenger vi ikke være avhengige av Maven, Gradle , etc.
- UI for feilsøking av testen.
- Ringer til en funksjonsfil fra en annen fil.
- Tilbyr støtte for Data Driver Testing som er innebygd internt, og derfor ikke behov for å være avhengig av eksterne rammer.
- Innebygde innfødte hvile rapporter. I tillegg kan den integreres med agurken for bedre UI-rapporter og mer klarhet.
- Gir intern støtte for å bytte konfigurasjon på tvers av forskjellige testmiljøer (QA, Stage, Prod, Pre-Prod).
- Sømløs støtte for CI / CD-integrering som kan være nyttig.
- Kan håndtere forskjellige HTTP-anrop:
- Web Socket-støtte
- SOAP forespørsel
- HTTP
- Håndtering av cookies
- HTTPS
- HTML-form data
- XML-forespørsel
Sammenligning av karate mot trygghet
Vær trygg : Det er et Java-basert bibliotek for å teste REST-tjenestene. Den bruker Java-språk for å skrive kodelinjene. Det hjelper til med å teste mange forespørselskategorier, noe som ytterligere resulterer i verifisering av forskjellige forretningslogikk-kombinasjoner.
Karate Framework : Et agurk- / agurkebasert verktøy, brukt til testing for SOAP & REST-tjenester.
Følgende tabell viser noen flere fremtredende forskjeller mellom Rest-Assured & Karate Framework:
S. nr | Basis | Karate Framework | REST-forsikret |
---|---|---|---|
7 | Rapportering | Det gir intern rapportering, og trenger derfor ikke være avhengig av eksterne plugins. Vi kan til og med integrere det med agurkrapporteringsplugin for bedre brukergrensesnitt. | Må være avhengig av eksterne plugins som Junit, TestNG |
1 | Språk | Den bruker en kombinasjon av agurk og agurk | Den bruker Java Language |
to | Kodestørrelse | Vanligvis er kodelinjen mindre, siden den følger agurklignende struktur | Kodelinje er mer siden det innebærer bruk av Java-språk |
3 | Teknisk kunnskap kreves | Ikke-programmerere kan enkelt skrive Gherkins-koden | Det kreves teknisk kunnskap for å skrive Java-kode |
4 | Datadrevet testing | Trenger å bruke TestNG eller tilsvarende for å støtte det samme | Interne koder kan brukes til å støtte datatesting |
5 | Gir det støtte for SOAP-samtaler | Ja, det gir | Det er bare relatert til en REST-forespørsel |
6 | Parallell testing | Ja, parallell testing støttes lett med generering av parallellrapport også | Ikke i stor grad. Selv om folk har prøvd å gjøre dette, er feilraten mer enn suksessraten |
8 | CSV-støtte for eksterne data | Ja, fra Karate 0.9.0 | Nei, må bruke Java-kode eller bibliotek |
9 | Web UI Automation | Ja, fra Karate 0.9.5 Web-UI Automation er mulig | Nei, den støttes ikke |
10 | Eksempel på GET | Given param val1 = ‘name1’ | given(). |
Som det fremgår av forskjellene ovenfor, er det derfor trygt å si at Karate er noe av det enkleste som noen kan gjøre.
Verktøy som kreves for å arbeide med Karate Framework
Nå, siden vi har vår grunnleggende kunnskap om Karate Framework på punkt, la oss se på prosessene og verktøyene som kreves for å sette opp Karate-miljøet.
# 1) Formørkelse
Eclipse er et integrert utviklingsmiljø som brukes innen dataprogrammering. Den brukes mest til Java-programmering. Som nevnt tidligere er Karate skrevet på Java, så det er mer fornuftig hvorfor Eclipse er IDE for API-testprogramvaren. En annen grunn er at det er et open source-verktøy, og dette er en ganske sterk grunn til å velge dette verktøyet.
Merk: Vi kan til og med bruke IntelliJ, Visual Studio og andre forskjellige redaktører som er tilgjengelige i markedet.
# 2) Maven
Dette er et byggeautomatiseringsverktøy som primært brukes til å bygge Java-prosjekter. Det er en måte å sette opp et karate-miljø og skrive koden. For å sette opp Eclipse med Maven-krav, kan du klikke her for Maven installasjon.
Mens du jobber i Maven, bruk Maven-avhengigheter som kan hjelpe deg med å støtte Karate Framework.
Følgende avhengigheter vil bli brukt med Maven i pom.xml.
com.intuit.karate karate-apache 0.9.5 test com.intuit.karate karate-junit4 0.9.5 test
Merk: De nyeste versjonene kan være tilgjengelige i Maven-arkivet.
det er best å utføre tilkoblingstester på en datamaskin som er koblet til et live nettverk.
# 3) Gradle
Gradle er et alternativ til Maven og kan brukes i like stor kapasitet. De har likheter og forskjeller, men kan brukes like mye til å sette opp et miljø for karatekodene våre.
Det er lettere å bruke, fleksibelt og anbefales å bruke når applikasjonen vår har noen modulerings- og administrasjonskrav med en rekke plug-ins. Gradle-oppsettkoden vil se ut som dette,
testCompile 'com.intuit.karate:karate-junit4:0.6.0' testCompile 'com.intuit.karate:karate-apache:0.6.0'
Merk: Du kan enten bruke MAVEN eller GRADLE.
# 4) Java-miljøoppsett i systemet ditt
Trenger å sette opp JDK- og JRE-miljøet for å komme i gang med Karate Framework-skriptene.
Structure Of Karate Test Script
Et Karate-testmanus er kjent for besittelsen av '.feature' -utvidelsen. Denne eiendommen arves fra agurk. Organisering av filer i Java-konvensjonen er også like tillatt. Du kan organisere filene dine i henhold til Java-pakkekonvensjonene.
Imidlertid instruerer Maven-retningslinjene at lagring av ikke-Java-filer skal gjøres separat. De er ferdige i en src / test / ressurser struktur. Og Java-filene holdes under src / main / java .
Men ifølge skaperne av Karate Framework, tror de sterkt at vi holder både Java og ikke-Java-filer side om side. I henhold til dem er det mye lettere å se etter * .java- og * .funksjonsfilene når de holdes sammen, i stedet for å følge standard Maven-strukturen.
Dette kan enkelt gjøres ved å tilpasse pom.xml som følger (For Maven):
src/test/java **/*.java ...
Følgende er oversikten over den generelle strukturen i Karate Framework:
Nå, siden dette Karate-rammeverket bruker Runner-filen, som også er nødvendig i agurk for å kjøre funksjonsfilene, vil det meste av skrivingen følge agurkstandardene.
Men i motsetning til agurk krever trinnene ikke en klar definisjon i Karate, og som igjen forbedrer fleksibiliteten og brukervennligheten. Vi trenger ikke å legge til det ekstra limet som vi vanligvis må legge til når vi følger agurkerammen.
'Runner' -klassen er mesteparten av tiden kalt TestRunner.java.
Da vil TestRunner.java-filen ha form av:
import com.intuit.karate.junit4.Karate; import org.junit.runner.RunWith; @RunWith(Karate.class) public class TestRunner { }
Og snakker om .trekk filen inneholder den alle testscenariene som må testes for å sikre at API-et fungerer i henhold til forventede krav.
En generell * .funksjonsfil ser ut som vist nedenfor:
Feature: fetching User Details Scenario: testing the get call for User Details Given url 'https://reqres.in/api/users/2' When method GET Then status 200
Opprette det første grunnleggende karate testmanus
Denne delen hjelper deg med å komme i gang med å lage ditt aller første testskript, som vil være nyttig for deg å konvertere APIer i form av et karate-rammeverk.
Før vi skriver de grunnleggende karate-testmanusene, må du installere følgende krav på maskinen din:
- Formørkelse IDE
- Maven. Angi riktig Maven-bane.
- JDK & JRE. Sett riktig vei.
La oss se på trinnvis tilnærming:
#1) Lage en ny MAVEN Prosjekt i Eclipse Editor
- Åpne formørkelse
- Klikk på Fil. Velg Nytt prosjekt.
- Velg Maven Project
- Velg arbeidsområdet.
- Velg arketypen (vanligvis velger vi “ Maven-archetype-quickstart 1.1 ”For enkle Maven-prosjekter).
- Oppgi gruppe-ID og gjenstands-ID (vi har brukt følgende verdier i vårt eksempel).
- Gruppe-ID : Karate
- Artefakt-ID: KarateTestScriptsSample
- Klikk på Fullfør for å fullføre oppsettet.
#to) Når du er opprettet, vil du nå kunne se følgende struktur i Project Explorer-vinduet.
# 3) Inkluder alle avhengighetene dine.
Vårt aller første trinn, etter oppsettet, skal vi være inkluderer alle avhengigheter som kreves for utførelsen. Vi vil oppbevare hele taggen under POM.xml (forutsatt at du allerede er klar over POM.xml-bruken).
- Åpne POM.xml og kopier koden nedenfor under avhengighetskoden og lagre filen.
com.intuit.karate karate-apache 0.9.5 test com.intuit.karate karate-junit4 0.9.5 test
Klikk her for kilde.
# 4) La oss brainstorme scenariet, hva skal vi teste i dette Karate Basic Test Script.
Scenario:
Vi skal teste en API med dette URL.
Sti: api / brukere / 2
Metode: FÅ
Og vi må validere , om forespørselen returnerer a Suksesskode (200) eller ikke.
Enkelt sagt, vi skal bare teste et eksempel på et API for å se om det blir fullført.
Merk: Vi tar et eksempel på et API som er tilgjengelig for testing. Du kan velge hvilken som helst PATH eller henvise til API-en.
Klikk her for kilde.
# 5) Nå vil vårt neste trinn være å lage en .trekk fil.
Som diskutert i innledningsdelen, .funksjonsfil er eiendommen som er arvet fra agurk. I denne filen vil vi skrive ut testscenariene som må utføres for å utføre API-testing.
- Gå til Mappe src / test / java i prosjektet ditt.
- Høyreklikk på den og opprett en ny fil - userDetails.feature. Klikk deretter på Fullfør-knappen.
Nå vil du se følgende fil under mappen src / test / java
De Grønt farget ikon ligner på .funksjon fi le i Agurk som vi nettopp opprettet.
- Når filen er opprettet, skal vi nå skrive testscenariene våre som vil bli diskutert i neste avsnitt.
# 6) Siden vi har scenariet og det blanke. trekk fil klar, la oss nå komme i gang med vårt første skript. La oss begynne å kode
Skriv følgende linje med kode under userDetails.feature-filen som vi opprettet i trinn 5:
Feature: fetching User Details Scenario: testing the get call for User Details Given url 'https://reqres.in/api/users/2' When method GET Then status 200
La oss prøve å forstå komponentene som er skrevet i filen ovenfor:
- Trekk: Keyword forklarer navnet på funksjonen vi tester.
- Bakgrunn: Dette er en valgfri seksjon som blir behandlet som en forutgående seksjon. Dette kan brukes til å definere hva som trengs for å teste API. Det inneholder HEADER, URL & PARAM alternativer.
- Scenario: Hver funksjonsfil du vil se, vil ha minst en funksjon (selv om den kan gi flere scenarier). Det er beskrivelsen av testsaken.
- Gitt: Det er trinnet som må utføres før andre testtrinn utføres. Det er en obligatorisk handling som skal utføres.
- Når: Den spesifiserer betingelsen som skal oppfylles for å utføre neste testtrinn.
- Deretter: Det forteller oss at hva som skal skje i tilfelle tilstanden nevnt i Når er fornøyd.
Merk: Alle de ovennevnte nøkkelordene er fra Gherkins-språket. Dette er den vanlige måten å skrive testmanusene på med agurk.
Og noen flere ord som brukes i funksjonsfilen er:
- 200: Det er status / svarskoden vi forventer (Klikk her for listen over statuskoder)
- FÅ: Det er API-metoden som POST, PUT, etc.
Vi håper denne forklaringen var lett å forstå. Nå vil du kunne forholde deg til det som er skrevet i filen ovenfor.
Nå må vi lage en TestRunner.java-fil
Som forklart i avsnittet ovenfor, trenger agurk en Runner-fil som kreves for å utføre .trekk filen som inneholder testscenariene.
prøve test plan dokument for mobil applikasjon
- Gå til Mappe src / test / java i prosjektet ditt
- Høyreklikk på den og opprett en ny Java-fil: TestRunner.java
- Når filen er opprettet, legg følgende kodelinjer under den:
import org.junit.runner.RunWith; import com.intuit.karate.junit4.Karate; @RunWith(Karate.class) public class TestRunner { }
- Test Runner er filen som nå skal kjøres for å utføre ønsket scenario som er skrevet under trinn 5.
# 7) Nå er vi klare med begge filene TestRunner.Java og userDeatils.feature. Den eneste oppgaven som er igjen for oss er å Løpe manuset.
- Gå til TestRunner.java-filen og høyreklikk på filen som vist i bildet nedenfor.
- Velg Kjør som -> Junit Test
- Når du først er valgt, vil du begynne å observere at testsaken nå har startet.
- Vent til testskriptet kjøres. Når du er ferdig, vil du observere noe som vist i bildet nedenfor i vinduet ditt.
- Til slutt kan vi si at vi har opprettet vår aller første grunnleggende Test skript bruker Karate Framework.
# 8) Sist gir Karate-rammeverket også en HTML-rapportpresentasjon for utførelsen som er utført.
- Gå til målmappe -> surefire-rapporten -> Her vil du se HTML-rapporten din som du kan åpne.
** Vi vil også foreslå at du åpner det samme ved hjelp av Chrome-nettleseren for bedre utseende.
- Følgende HTML-rapport vil vises for deg som viser Scenarier og test som er utført for nevnte scenario:
Konklusjon
I denne veiledningen har vi diskutert API-testing, forskjellige testverktøy som er tilgjengelige i markedet, og hvordan Karate Framework er et bedre alternativ sammenlignet med sine kolleger.
Vi fulgte en trinnvis tilnærming for å lage vårt første grunnleggende testskript. Vi startet med å lage en basis Maven-prosjekt i formørkelse IDE for å opprette en .feature-fil, som inneholder alle testscenariene og en Runner-fil for å utføre testsaken som er nevnt i .feature-filen.
På slutten av flere trinn kunne vi se utførelsesrapporten om testresultatene.
Vi håper, denne opplæringen var nyttig for nybegynnere i å lære å bygge sitt første testskript ved hjelp av Karate Framework og utføre API-testing. Denne detaljerte trinnvise tilnærmingen er en fantastisk måte å kjøre og utføre forskjellige tester på API.
Anbefalt lesing
- Hvordan sette opp Node.js Testing Framework: Node.js Tutorial
- Parasoft SOAtest Tutorial: Scriptless API Testing Tool
- Mockito Tutorial: Mockito Framework for Mocking in Unit Testing
- API Testing Tutorial: En komplett guide for nybegynnere
- TestNG Tutorial: Introduksjon til TestNG Framework
- Jest Tutorial - JavaScript Unit Testing Using Jest Framework
- Destruktiv testing og ikke-destruktiv testing
- Hvordan bruke Postman til å teste forskjellige API-formater?