karate framework tutorial
Denne tutorial er en introduktion til API-test ved hjælp af Karate Framework. Lær om strukturen i Karate Test Script og trin til at opbygge det første test script:
API er et akronym, der står for Application Programming Interface. Enkelt sagt kan vi definere det som en softwareformidler, der tillader kommunikation mellem applikationer.
Vi har brug for API-test, fordi:
- Resultaterne offentliggøres hurtigere, og derfor ikke længere venter på at se, om API'en fungerer fint.
- Med det hurtigere svar bliver implementeringen af disse API'er også hurtigere, hvilket giver mulighed for hurtig leveringstid.
- Tidlig fejlregistrering, selv før brugergrænsefladen til appen oprettes, giver os mulighed for at afbøde risici og rette fejl.
- Levering i stor skala mulig på en kortere periode.
For at kunne arbejde på API-test har vi forskellige værktøjer til rådighed på markedet som Postman, Mocha og Chai. Disse har vist gode resultater og effektiv brug til test af API'er, men disse er stærkt kodepåvirket. For at kunne bruge disse skal man være teknisk sund og fortrolig med programmeringssprog.
Karate Framework løser smukt dette spørgsmål af sine foregående softwareværktøjer.
Hvad du vil lære:
Hvad er Karate Framework
Karate? Lad os tale Karate. Er det den fra Japan? Hvad synes du? Det kan godt være, at den store Bruce Lee havde udviklet dette i sin fritid.
Selvom vi gerne vil dykke ned i Karates interessante rødder, lad os lige nu tale om Karate-værktøj der er udviklet af Peter Thomas , et af de fantastiske værktøjer, der kommer API-testere til undsætning.
Karate-rammer følger agurktypen ved at skrive programmet, der følger BDD-tilgangen. Syntaksen er let at forstå af ikke-programmører. Og denne ramme er det eneste API-testværktøj, der har kombineret API-automatisering og ydelsestest til et enkelt enkeltstående værktøj.
Det giver brugerne mulighed for at udføre testsagerne i Parallel og udføre JSON & XML-kontrol.
Med disse oplysninger kan visse nøglepunkter udledes for yderligere at forstå Karate-værktøjet i detaljer:
- Karate er en BDD-testramme i stedet for en TDD.
- Det er designet til at være let for ikke-programmører. Denne funktion er en game-changer, da den giver mulighed for mere brug og adgang for mange mennesker uanset deres tekniske baggrund eller kapacitet.
- Det gør brug af agurkfunktionsfilen og agurker-sproget til at skrive testen, som er meget let at forstå.
Alle disse funktioner gør det til et af de mest gunstige automatiseringsværktøjer, der er tilgængelige i dag.
Karate-rammes historie
Lavet af ' Peter Thomas ' i 2017 sigter denne software mod at gøre testfunktioner let tilgængelige for alle. Det blev skrevet på Java, og de fleste forventede, at dets filer også skulle være på samme sprog, men heldigvis er det ikke tilfældet.
Snarere bruger det agurker-filer, hvilket er et resultat af dets forhold til agurkerammen. Automationssoftwaren er en udvidelse af Agurk, og arver derfor brugen af Gherkins-filen i dens drift. Den store forskel mellem de to er, at Karate ikke bruger Java under testning, men agurk gør det.
Dette er netop grunden til, at det henvender sig til ikke-programmører, da agurker-syntaksen er superlæselig og omfattende. Dette er grunden til, at Karate er bedst egnet og anbefales til at komme ind i en verden af automatiseret API-test.
Følgende er nogle af funktionerne i Karate Testing Framework:
- Gør brug af letforståeligt agurksprog.
- Det kræver ingen teknisk programmeringskendskab som Java.
- Det er baseret på de populære agurkstandarder.
- Let at skabe en ramme.
- Parallel test er den grundlæggende funktionalitet, som Karate selv leverer, og derfor behøver vi ikke stole på Maven, Gradle , etc.
- UI til fejlfinding af testen.
- Opkald til en funktionsfil fra en anden fil.
- Tilbyder understøttelse af datadrivertesten, der er bygget internt, og derfor ikke nødvendigt at afhænge af eksterne rammer.
- Indbyggede indfødte hvile rapporter. Plus, det kan integreres med agurken for bedre UI-rapporter og mere klarhed.
- Giver intern support til at skifte konfiguration på tværs af forskellige testmiljøer (QA, Stage, Prod, Pre-Prod).
- Problemfri understøttelse af CI / CD-integration, der kan være nyttigt.
- Kan håndtere forskellige HTTP-opkald:
- Web Socket support
- SOAP-anmodning
- HTTP
- Håndtering af browser-cookie
- HTTPS
- HTML-form data
- XML-anmodning
Sammenligning af karate mod forsikret
Stol trygt på : Det er et Java-baseret bibliotek til test af REST-tjenesterne. Det bruger Java-sprog til at skrive kodelinjerne. Det hjælper med at teste adskillige anmodningskategorier, hvilket yderligere resulterer i verifikation af forskellige forretningslogiske kombinationer.
Karate Framework : Et agurke / agurkbaseret værktøj, der bruges til testning af SOAP & REST-tjenester.
Følgende tabel viser et par mere fremtrædende forskelle mellem Rest-Assured & Karate Framework:
S. nr | Basis | Karate Framework | Stol trygt på |
---|---|---|---|
7 | Rapportering | Det giver intern rapportering og behøver derfor ikke at være afhængig af eksterne plugins. Vi kan endda integrere det med agurkrapporterings-plugin for bedre brugergrænseflade. | Skal være afhængig af eksterne plugins som Junit, TestNG |
1 | Sprog | Det bruger en kombination af agurk og agurker | Det gør brug af Java Language |
to | Kodestørrelse | Normalt er kodelinjen mindre, da den følger agurklignende struktur | Kodelinje er mere, da det involverer brugen af Java-sprog |
3 | Teknisk viden påkrævet | Ikke-programmører kan nemt skrive agurkekoden | Der kræves teknisk viden til at skrive Java-kode |
4 | Datadrevet test | Brug for at gøre brug af TestNG eller tilsvarende for at understøtte det samme | In-house tags kan bruges til at understøtte datatestning |
5 | Giver det SOAP-opkaldssupport | Ja, det giver | Det er kun relateret til en REST-anmodning |
6 | Parallel test | Ja, parallel test understøttes også let med parallel rapportgenerering | Ikke i vid udstrækning. Selvom folk har forsøgt at gøre dette, er fejlprocenten mere end succesraten |
8 | CSV-understøttelse af eksterne data | Ja, fra Karate 0.9.0 | Nej, skal du bruge Java-kode eller bibliotek |
9 | Web UI Automation | Ja, fra Karate 0.9.5 er det muligt at automatisere web-UI | Nej, det understøttes ikke |
10 | Prøve GET | Given param val1 = ‘name1’ | given(). |
Som det fremgår af forskellene ovenfor, er det derfor sikkert at sige, at Karate er en af de nemmeste ting, som nogen kan gøre.
Nødvendige værktøjer til at arbejde med Karate Framework
Nu, da vi har vores grundlæggende viden om Karate Framework på punkt, så lad os se på de processer og værktøjer, der kræves til opsætning af Karate-miljøet.
# 1) Formørkelse
Eclipse er et integreret udviklingsmiljø, der anvendes inden for computerprogrammering. Det bruges mest til Java-programmering. Som tidligere nævnt er Karate skrevet i Java, så det giver mere mening, hvorfor Eclipse er go-to IDE til API-testsoftwaren. En anden grund er, at det er et open source-værktøj, og dette er en ret stærk grund til at vælge dette værktøj.
Bemærk: Vi kunne endda bruge IntelliJ, Visual Studio og andre forskellige redaktører, der er tilgængelige på markedet.
# 2) Maven
Dette er et build-automatiseringsværktøj, der primært bruges til at opbygge Java-projekter. Det er en måde at oprette et karate-miljø på og skrive koden. For at konfigurere din Eclipse med Maven-krav kan du klikke på her til Maven-installation.
Mens du arbejder i Maven, skal du bruge Maven-afhængigheder, der kan hjælpe dig med at støtte Karate Framework.
Følgende afhængigheder vil blive brugt med Maven i pom.xml.
com.intuit.karate karate-apache 0.9.5 test com.intuit.karate karate-junit4 0.9.5 test
Bemærk: De nyeste versioner er muligvis tilgængelige i Maven-arkivet.
typer metadata i datalager
# 3) Gradle
Gradle er et alternativ til Maven og kan bruges i lige stor kapacitet. De har deres ligheder og forskelle, men kan også bruges til at skabe et miljø for vores karatekoder.
Det er lettere at bruge, fleksibelt og anbefales at bruge, når vores applikation har nogle krav til modulering og styring med en masse plug-ins. Gradle-opsætningskoden vil se sådan ud,
testCompile 'com.intuit.karate:karate-junit4:0.6.0' testCompile 'com.intuit.karate:karate-apache:0.6.0'
Bemærk: Du kan enten bruge MAVEN eller GRADLE.
# 4) Opsætning af Java-miljø i dit system
Brug for at konfigurere JDK- og JRE-miljøet for at komme i gang med Karate Framework-scripts.
Opbygning af karate test script
Et Karate-test script er kendt for besiddelsen af '.feature' udvidelsen. Denne ejendom er arvet fra agurk. Organisering af filer i Java-konvention er også tilladt. Du er fri til at organisere dine filer i henhold til Java-pakkekonventionerne.
Imidlertid instruerer Maven-retningslinjerne, at lagring af ikke-Java-filer skal ske separat. De gøres i en src / test / ressourcer struktur. Og Java-filerne holdes under src / main / java .
Men ifølge skaberne af Karate Framework tror de stærkt på, at vi holder både Java- og ikke-Java-filer side om side. Ifølge dem er det meget nemmere at holde øje med * .java- og * .feature-filerne, når de holdes sammen, snarere end at følge Maven-standardstrukturen.
Dette kan let gøres ved at tilpasse din pom.xml som følger (For Maven):
src/test/java **/*.java ...
Følgende er oversigten over den generelle struktur i Karate Framework:
Nu, da dette Karate Framework bruger Runner-filen, hvilket også er nødvendigt i Agurk for at køre funktionsfilerne, så det meste af skrivningen følger agurkestandarderne.
Men i modsætning til agurk kræver trinnene ikke en klar definition i Karate, og som igen forbedrer fleksibiliteten og letter betjeningen. Vi behøver ikke at tilføje den ekstra lim, som vi normalt skal tilføje, når vi følger agurkerammen.
Klassen “Runner” kaldes for det meste TestRunner.java.
Derefter vil TestRunner.java-filen have form af:
import com.intuit.karate.junit4.Karate; import org.junit.runner.RunWith; @RunWith(Karate.class) public class TestRunner { }
Og taler om .funktion fil, indeholder den alle de testscenarier, der skal testes for at sikre, at API'en fungerer efter de forventede krav.
En generel * .feature-fil ser ud 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
Oprettelse af det første grundlæggende karate test script
Dette afsnit hjælper dig med at komme i gang med oprettelsen af dit allerførste testscript, som vil være nyttigt for dig at konvertere API'er i form af en karate-ramme.
Inden vi skriver de grundlæggende Karate-testskripter, skal du installere følgende forudsætninger på din maskine:
- Formørkelse IDE
- Maven. Indstil den passende Maven-sti.
- JDK & JRE. Indstil den rette sti.
Lad os se på den trinvise tilgang:
# 1) Opret en ny MAVEN Projekt i Eclipse Editor
- Åbn formørkelse
- Klik på File. Vælg Nyt projekt.
- Vælg Maven Project
- Vælg placeringen af arbejdsområdet.
- Vælg arketypen (normalt vælger vi “ Maven-archetype-hurtigstart 1.1 ”Til enkle Maven-projekter).
- Angiv gruppe-id'et og artefakt-id'et (vi har brugt følgende værdier i vores eksempel).
- Gruppe-id : Karate
- Artefakt-ID: KarateTestScriptsSample
- Klik på Udfør for at fuldføre opsætningen.
#to) Når du er oprettet, vil du nu kunne se følgende struktur i Project Explorer-vinduet.
# 3) Inkluder alle dine afhængigheder.
Vores allerførste trin, efter opsætningen, er vi inkluderer alle afhængigheder der kræves for udførelsen. Vi opbevarer hele tagget under POM.xml (forudsat at du allerede er opmærksom på POM.xml-brugen).
- Åbn POM.xml, og kopier nedenstående kode under afhængighedskoden, og gem filen.
com.intuit.karate karate-apache 0.9.5 test com.intuit.karate karate-junit4 0.9.5 test
Klik på her som kilde.
# 4) Lad os brainstorme scenariet, hvad skal vi teste i dette Karate Basic Test Script.
Scenarie:
Vi tester en API med dette URL.
Sti: api / brugere / 2
Metode: FÅ
Og vi skal validere , om anmodningen returnerer a Succes kode (200) eller ikke.
Enkelt sagt vil vi bare teste en prøve-API for at se, om den bliver udført med succes eller ej.
Bemærk: Vi tager en prøve-API, der er tilgængelig til test. Du kan vælge en hvilken som helst PATH eller henvise til din API.
Klik på her som kilde.
# 5) Nu er vores næste skridt at oprette en .funktion fil.
Som diskuteret i introduktionsafsnittet .feature-fil er den ejendom, der er arvet fra agurk. I denne fil vil vi skrive de testscenarier, der skal udføres for at udføre API-testning.
- Gå til Mappe src / test / java i dit projekt.
- Højreklik på den, og opret en ny fil - userDetails.feature. Klik derefter på knappen Afslut.
Nu vil du se følgende fil under mappen src / test / java
Det Grøn farvet ikon ligner .funktion fi le i Agurk, som vi lige har oprettet.
- Når filen er oprettet, skriver vi nu vores testscenarier, der vil blive diskuteret i det følgende afsnit.
# 6) Da vi har scenariet og det tomme. funktion fil klar, lad os nu komme i gang med vores første script. Lad os begynde at kode
Skriv følgende linje kode under userDetails.feature-fil, som vi oprettede i trin # 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
Lad os prøve at forstå de komponenter, der er skrevet i ovenstående fil:
- Funktion: Keyword forklarer navnet på den funktion, vi tester.
- Baggrund: Dette er en valgfri sektion, der behandles som en forudsætningssektion. Dette kan bruges til at definere, hvad alt er nødvendigt for at teste API'et. Det indeholder HEADER, URL & PARAM muligheder.
- Scenarie: Hver funktionsfil, som du ser, har mindst en funktion (selvom den kan give mange scenarier). Det er beskrivelsen af testsagen.
- Givet: Det er det trin, der skal udføres, før ethvert andet testtrin udføres. Det er en obligatorisk handling, der skal udføres.
- Hvornår: Den specificerer den betingelse, der skal være opfyldt for at udføre det næste teststrin.
- Derefter: Det fortæller os, at hvad der skal ske, hvis den tilstand, der er nævnt i Hvornår er tilfreds.
Bemærk: Alle de ovennævnte nøgleord er fra Gherkins-sproget. Dette er standardmetoden til at skrive testskripterne med agurk.
Og nogle flere ord, der bruges i funktionsfilen, er:
- 200: Det er den status / svarkode, vi forventer (Klik på her for listen over statuskoder)
- FÅ: Det er API-metoden som POST, PUT osv.
Vi håber, at denne forklaring var let for dig at forstå. Nu vil du være i stand til at forholde sig til, hvad der præcist er skrevet i ovenstående fil.
Nu skal vi oprette en TestRunner.java-fil
Som forklaret i ovenstående afsnit har agurk brug for en Runner-fil, der kræves for at udføre .funktion fil, der indeholder testscenarierne.
- Gå til Mappe src / test / java i dit projekt
- Højreklik på den, og opret en ny Java-fil: TestRunner.java
- Når filen er oprettet, placer følgende kodelinjer under det:
import org.junit.runner.RunWith; import com.intuit.karate.junit4.Karate; @RunWith(Karate.class) public class TestRunner { }
- Test Runner er den fil, der nu vil blive udført for at udføre det ønskede scenario, der er skrevet under trin # 5.
# 7) Nu er vi klar med begge filer TestRunner.Java og userDeatils.feature. Den eneste opgave, der er tilbage for os, er at Løb manuskriptet.
- Gå til TestRunner.java-filen, og højreklik på filen som vist i nedenstående billede.
- Vælg Kør som -> Junit-test
- Når du først er valgt, begynder du at observere, at testsagen nu er startet.
- Vent til test scriptet udføres. Når du er færdig, vil du observere noget som vist i nedenstående billede i dit vindue.
- Endelig kan vi sige, at vi med succes har oprettet vores allerførste basis Test script bruger Karate Framework.
# 8) Endelig giver Karate-rammen også en HTML-rapportpræsentation til den udførelse, der er udført.
- Gå til målmappe -> surefire-rapporter-> Her vil du se din HTML-rapport, som du kan åbne.
** Vi vil også foreslå, at du åbner det samme ved hjælp af Chrome-browseren for et bedre udseende.
- Efterfølgende HTML-rapport vises for dig, der skildrer Scenarier og test der er udført for det nævnte scenario:
Konklusion
I denne vejledning har vi diskuteret API-test, forskellige testværktøjer, der er tilgængelige på markedet, og hvordan Karate Framework er en bedre mulighed i forhold til dets modstykker.
Vi fulgte en trinvis tilgang til at oprette vores første grundlæggende testscript. Vi startede med at skabe en basis Maven-projekt i formørkelse IDE for at oprette en .feature-fil, der indeholder alle testscenarierne og en Runner-fil til at udføre testsagen, der er nævnt i .feature-filen.
I slutningen af de flere trin kunne vi se eksekveringsrapporten om testresultaterne.
j2ee interview spørgsmål og svar pdf
Vi håber, denne vejledning var nyttigt for begyndere til at lære at opbygge deres første testscript ved hjælp af Karate Framework og udføre API-test. Denne detaljerede trinvise tilgang er en vidunderlig måde at køre og udføre forskellige tests på API'en på.
Anbefalet læsning
- Sådan opsættes Node.js Testing Framework: Node.js Tutorial
- Parasoft SOAtest Tutorial: Scriptless API Testing Tool
- Mockito Tutorial: Mockito Framework for Mocking i Unit Testing
- API-testvejledning: En komplet guide til begyndere
- TestNG Tutorial: Introduktion til TestNG Framework
- Jest Tutorial - JavaScript-enhedstest ved hjælp af Jest Framework
- Destruktiv test og ikke-destruktiv testvejledning
- Hvordan bruges postbud til test af forskellige API-formater?