karate framework tutorial
Ta vadnica je uvod v testiranje API-jev z uporabo Karate Framework. Spoznajte strukturo preizkusnega skripta za karate in korake za izdelavo prvega preizkusnega skripta:
API je kratica, ki je kratica za Application Programming Interface. Preprosto povedano ga lahko definiramo kot programskega posrednika, ki omogoča komunikacijo med aplikacijami.
Testiranje API potrebujemo, ker:
- Rezultati se objavijo hitreje, zato ni več treba čakati, ali API deluje dobro.
- S hitrejšim odzivom postane uvedba teh API-jev tudi hitrejša, kar omogoča hiter čas preoblikovanja.
- Zgodnje odkrivanje napak, še preden je uporabniški vmesnik aplikacije ustvarjen, nam omogoča zmanjšanje tveganj in odpravljanje napak.
- Obsežna dostava možna v krajšem obdobju.
Da bi lahko delali na testiranju API-jev, imamo na trgu različna orodja, kot so Poštar, Mocha in Chai. Ti so pokazali dobre rezultate in učinkovito uporabo za testiranje API-jev, vendar nanje močno vpliva koda. Da bi jih lahko uporabljal, mora biti tehnično dober in dobro poznati programske jezike.
Karate Framework lepo reši to težavo predhodnih programskih orodij.
Kaj se boste naučili:
Kaj je okvir karateja
Karate? Spregovorimo o karateju. Je tista z Japonske? Kaj misliš? Mogoče je to razvil veliki Bruce Lee v svojem prostem času.
Čeprav bi se radi poglobili v zanimive korenine karateja, za zdaj pogovorimo o Karate orodje ki ga je razvil Peter Thomas , eno odličnih orodij, ki pomagajo testerjem API.
Karate okvir sledi kumarskemu načinu pisanja programa, ki sledi pristopu BDD. Neprogramerji sintakso enostavno razumejo. In ta okvir je edino orodje za testiranje API-jev, ki je združilo avtomatizacijo API-jev in testiranje zmogljivosti v eno samostojno orodje.
Uporabnikom omogoča, da vzporedno izvajajo testne primere in izvajajo preverjanja JSON in XML.
S temi informacijami lahko ugotovimo nekatere ključne točke za nadaljnje podrobno razumevanje orodja Karate:
- Karate je testni okvir BDD namesto TDD.
- Zasnovan je tako, da je enostaven za neprogramerje. Ta funkcija je izmenjevalnik iger, saj omogoča večjo uporabo in dostop mnogim ljudem, ne glede na njihovo tehnično ozadje ali zmogljivost.
- Za pisanje testa, ki je zelo enostaven za razumevanje, uporablja datoteko funkcije Cucumber in jezik Gherkins.
Zaradi vseh teh funkcij je eno najugodnejših orodij za avtomatizacijo, ki so danes na voljo.
Zgodovina karateja
Ustvaril ' Peter Thomas ' v letu 2017 želi ta programska oprema omogočiti, da so testne funkcije na voljo vsem. Pisano je bilo v Javi in večina ljudi je pričakovala, da bodo tudi njegove datoteke v istem jeziku, vendar na srečo ni tako.
Namesto tega uporablja datoteke Gherkins, kar je rezultat njegove povezave z ogrodjem Cucumber. Programska oprema za avtomatizacijo je podaljšek Cucumber, zato podeduje uporabo datoteke Gherkins pri svojem delovanju. Velika razlika med obema je, da Karate med testiranjem ne uporablja Jave, Kumara pa.
Prav zaradi tega skrbi za neprogramerje, saj je sintaksa Gherkins izjemno berljiva in izčrpna. To je razlog, zakaj je karate najprimernejši in priporočljiv za vstop v svet avtomatiziranega testiranja API.
Sledi nekaj funkcij okvira za testiranje karateja:
- Uporablja preprost jezik Gherkins.
- Ne zahteva tehničnega znanja programiranja, kot je Java.
- Temelji na priljubljenih standardih kumar.
- Enostavno ustvariti ogrodje.
- Vzporedno testiranje je osnovna funkcionalnost, ki jo zagotavlja sam Karate, zato od nas ni treba biti odvisen Maven, Gradle itd.
- Uporabniški vmesnik za razhroščevanje testa.
- Klicanje datoteke funkcije iz druge datoteke.
- Ponuja podporo za preskušanje podatkovnih gonilnikov, ki je vgrajeno znotraj podjetja, zato ni treba biti odvisen od zunanjih okvirov.
- Vgrajena poročila o naravnem počitku. Poleg tega ga je mogoče integrirati s kumarico za boljša poročila o uporabniškem vmesniku in večjo jasnost.
- Ponuja interno podporo za preklapljanje konfiguracije med različnimi testnimi okolji (QA, Stage, Prod, Pre-Prod).
- Brezhibna podpora integraciji CI / CD, ki je lahko koristna.
- Sposoben obravnavati različne klice HTTP:
- Podpora za Web Socket
- Zahteva za SOAP
- HTTP
- Ravnanje s piškotki brskalnika
- HTTPS
- Podatki v obliki HTML
- Zahteva XML
Primerjava karateja proti prepričanom
Bodite prepričani : To je knjižnica, ki temelji na Javi za preskušanje storitev REST. Za pisanje vrstic kode uporablja jezik Java. Pomaga pri preizkušanju številnih kategorij zahtev, kar nadalje privede do preverjanja različnih kombinacij poslovne logike.
Karate okvir : Orodje na osnovi kumaric / kornišonov, ki se uporablja za testiranje storitev SOAP & REST.
Naslednja tabela navaja nekaj vidnejših razlik med Rest-Assured & Karate Framework:
S. Št | Osnova | Karate okvir | PRI POČITKU |
---|---|---|---|
7. | Poročanje | Zagotavlja interno poročanje, zato ni treba biti odvisen od zunanjih vtičnikov. Za boljši uporabniški vmesnik ga lahko celo integriramo z vtičnikom za poročanje o kumarah. | Morate biti odvisni od zunanjih vtičnikov, kot so Junit, TestNG |
1. | Jezik | Uporablja kombinacijo kumare in kornišona | Uporablja jezik Java |
dva | Velikost kode | Običajno je vrstica kode manjša, saj sledi strukturi, podobni kumaram | Vrstica kode je več, saj vključuje uporabo jezika Java |
3. | Potrebno tehnično znanje | Neprogramerji lahko enostavno napišejo kodo Gherkins | Za pisanje kode Java je potrebno tehnično znanje |
4. | Testiranje na podlagi podatkov | Za podporo istega morate uporabiti TestNG ali enakovreden test | Interne oznake lahko uporabite za podporo preskušanju podatkov |
5. | Ali zagotavlja podporo za klic SOAP | Da, ponuja | Povezan je samo z zahtevo REST |
6. | Vzporedno preskušanje | Da, vzporedno preskušanje je enostavno podpreti tudi z vzporednim ustvarjanjem poročil | Ne v veliki meri. Čeprav so ljudje to že poskušali, je stopnja neuspeha več kot uspešnost |
8. | Podpora za CSV za zunanje podatke | Da, iz karateja 0.9.0 | Ne, uporabljati mora kodo Java ali knjižnico |
9. | Avtomatizacija spletnega uporabniškega vmesnika | Da, od Karate 0.9.5 je možna avtomatizacija spletnega uporabniškega vmesnika | Ne, ni podprto |
10. | Vzorec GET | Given param val1 = ‘name1’ | given(). |
Kot kažejo zgornje razlike, lahko varno rečemo, da je karate ena najlažjih stvari, ki jih lahko naredi vsak.
Orodja, potrebna za delo s karate ogrodjem
Ker imamo zdaj osnovno znanje o Karate Frameworku, si oglejmo postopke in orodja, potrebna za nastavitev okolja Karateja.
# 1) Mrk
Eclipse je integrirano razvojno okolje, ki se uporablja na področju računalniškega programiranja. Večinoma se uporablja za programiranje Java. Kot smo že omenili, je Karate napisan v Javi, zato je bolj smiselno, zakaj je Eclipse IDE za testno programsko opremo API. Drug razlog je, da gre za odprtokodno orodje in to je precej močan razlog, da se odločite za to orodje.
Opomba: Uporabili bi lahko celo IntelliJ, Visual Studio in druge urejevalnike, ki so na voljo na trgu.
# 2) Maven
To je orodje za avtomatizacijo gradnje, ki se uporablja predvsem za gradnjo projektov Java. To je eden od načinov za postavitev okolja za karate in pisanje kode. Če želite nastaviti Eclipse z zahtevami Mavena, lahko kliknete tukaj za namestitev Maven.
Med delom v Mavenu uporabljajte odvisnosti Maven, ki bi vam pomagale podpirati Karate Framework.
Naslednje odvisnosti bodo uporabljene z Mavenom v pom.xml.
com.intuit.karate karate-apache 0.9.5 test com.intuit.karate karate-junit4 0.9.5 test
Opomba: Najnovejše različice so morda na voljo v skladišču Maven.
c ++ počakajte 1 sekundo
# 3) Gradle
Gradle je alternativa Mavenu in se lahko uporablja v enaki zmogljivosti. Imajo podobnosti in razlike, vendar jih je mogoče enako uporabiti pri postavljanju okolja za naše karate kode.
Je enostavnejši za uporabo, prilagodljiv in priporočljiv za uporabo, če ima naša aplikacija nekatere zahteve glede modularizacije in upravljanja s kopico vtičnikov. Nastavitvena koda Gradle bi izgledala nekako takole,
testCompile 'com.intuit.karate:karate-junit4:0.6.0' testCompile 'com.intuit.karate:karate-apache:0.6.0'
Opomba: Lahko uporabite MAVEN ali GRADLE.
# 4) Nastavitev okolja Java v vašem sistemu
Za začetek uporabe skriptov Karate Framework morate nastaviti okolje JDK in JRE.
Struktura testnega skripta za karate
Karate testni skript je znan po tem, da ima razširitev ».feature«. Ta lastnost je podedovana od Kumare. Prav tako je dovoljena organizacija datotek v konvenciji Java. Datoteke lahko organizirate v skladu s pravili o paketu Java.
Vendar smernice Mavena določajo, da je treba shraniti datoteke, ki niso Java, ločeno. Opravljeni so v src / test / resources struktura. Datoteke Java se hranijo v src / main / java .
Toda glede na ustvarjalce Karate Framework trdno verjamejo, da hranimo datoteke Java in ne-Java ob strani. Glede na njih je veliko lažje iskati datoteke * .java in * .feature, ko jih hranimo skupaj, namesto da bi sledili standardni strukturi Maven.
To lahko enostavno naredite tako, da svoj pom.xml prilagodite na naslednji način (za Maven):
src/test/java **/*.java ...
Sledi oris splošne strukture Karate Framework:
Ker zdaj ta Karate Framework uporablja datoteko Runner, ki je v programu Cucumber potrebna tudi za zagon datotek s funkcijami, bo večina pisanja sledila standardom Cucumber.
Toda za razliko od Kumare koraki ne zahtevajo jasne opredelitve v karateju, kar pa povečuje prožnost in enostavnost delovanja. Ni nam treba dodati dodatnega lepila, ki ga moramo običajno dodati, ko sledimo okvirju Kumare.
Razred 'Runner' je večino časa imenovan TestRunner.java.
Potem bo datoteka TestRunner.java v obliki:
import com.intuit.karate.junit4.Karate; import org.junit.runner.RunWith; @RunWith(Karate.class) public class TestRunner { }
In govori o .feature datoteka vsebuje vse preskusne scenarije, ki jih je treba preizkusiti, da se prepričate, da API deluje v skladu s pričakovanimi zahtevami.
Splošna datoteka * .feature je videti nekako tako, kot je prikazano spodaj:
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
Ustvarjanje prvega osnovnega preizkusnega skripta za karate
Ta razdelek vam bo pomagal začeti z ustvarjanjem vašega prvega testnega skripta, ki vam bo v pomoč pri pretvorbi API-jev v obliki okvira Karate.
Preden napišemo osnovne preizkusne skripte za karate, na vaš računalnik namestite naslednje rekvizite:
- Eclipse IDE
- Maven. Nastavite ustrezno Mavenovo pot.
- JDK & JRE. Nastavite ustrezno pot.
Oglejmo si pristop po korakih:
# 1) Ustvari novo MAVEN Projekt v urejevalniku Eclipse
- Odprite Eclipse
- Kliknite Datoteka. Izberite Nov projekt.
- Izberite Maven Project
- Izberite lokacijo delovnega prostora.
- Izberite arhetip (običajno izberemo » Maven-arhetip-hitri začetek 1.1 'Za preproste Mavenove projekte).
- Navedite ID skupine in ID artefakta (v našem primeru smo uporabili naslednje vrednosti).
- ID skupine : Karate
- ID artefakta: KarateTestScriptsSample
- Za dokončanje nastavitve kliknite Finish.
#two) Ko je enkrat ustvarjen, boste lahko v oknu Project Explorer videli naslednjo strukturo.
# 3) Vključite vse svoje odvisnosti.
Naš prvi korak, po namestitvi se bomo še lotili vključujejo vse odvisnosti ki bo potrebna za izvedbo. Vse oznake bomo obdržali pod POM.xml (ob predpostavki, da že poznate uporabo POM.xml).
- Odprite POM.xml in kopirajte spodnjo kodo pod oznako odvisnosti in shranite datoteko.
com.intuit.karate karate-apache 0.9.5 test com.intuit.karate karate-junit4 0.9.5 test
Kliknite tukaj za vir.
# 4) Razmislimo o scenariju, kaj bomo preizkusili v tem osnovnem testnem skriptu za karate.
Scenarij:
S tem bomo preizkusili API URL.
Pot: api / users / 2
Metoda: GET
In moramo potrditi , ali zahteva vrača a Koda uspeha (200) ali ne.
Preprosto povedano, samo preizkusili bomo vzorčni API, da ugotovimo, ali se uspešno izvaja.
Opomba: Vzamemo vzorec API, ki je na voljo za testiranje. Izberete lahko kateri koli PATH ali se sklicujete na svoj API.
Kliknite tukaj za vir.
# 5) Zdaj bi bil naš naslednji korak ustvariti .feature mapa.
najboljši python ide mac os x
Kot je razloženo v uvodnem delu, .feature datoteka je lastnina, ki je bila podedovana od Kumare. V tej datoteki bomo zapisali testne scenarije, ki jih je treba izvesti za izvajanje testiranja API.
- Pojdite v mapo src / test / java v vašem projektu.
- Z desno miškino tipko kliknite nanjo in ustvarite novo datoteko - userDetails.feature. Nato kliknite gumb Dokončaj.
Zdaj boste pod mapo videli naslednjo datoteko src / test / java
The Ikona zelene barve spominja na .značilnost fi le v Kumare, ki smo jo pravkar ustvarili.
- Ko je datoteka ustvarjena, bomo zdaj napisali preizkusne scenarije, ki bodo obravnavani v naslednjem poglavju.
# 6) Ker imamo scenarij in prazno. funkcija datoteka pripravljena, zdaj začnimo z našim prvim skriptom. Začnimo s kodiranjem
V datoteko userDetails.feature, ki smo jo ustvarili v 5. koraku, zapišite naslednjo vrstico kode:
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
Poskusimo razumeti komponente, zapisane v zgornji datoteki:
- Značilnost: Ključna beseda razlaga ime funkcije, ki jo preizkušamo.
- Ozadje: To je neobvezen odsek, ki se obravnava kot predpogojni odsek. S tem lahko določimo, kaj vse je potrebno za preizkušanje API-ja. Vsebuje GLAVA, URL IN PARAM opcije.
- Scenarij: Vsaka datoteka funkcije, ki jo boste videli, bo imela vsaj eno lastnost (čeprav lahko da večkraten scenariji). To je opis testnega primera.
- Glede na: Pred izvedbo katerega koli drugega preskusnega koraka je treba izvesti korak. To je obvezno dejanje, ki ga je treba izvesti.
- Kdaj: Določa pogoj, ki mora biti izpolnjen za izvedbo naslednjega preskusnega koraka.
- Nato: Pove nam, da kaj se mora zgoditi v primeru stanja, omenjenega v Kdaj je zadovoljen.
Opomba: Vse zgoraj omenjene ključne besede so iz jezika Gherkins. To je standardni način pisanja testnih skript s pomočjo Kumare.
In še nekaj besed, uporabljenih v datoteki funkcije:
- 200: Pričakujemo kodo stanja / odziva (kliknite tukaj za seznam statusnih kod)
- GET: To je metoda API, kot so POST, PUT itd.
Upamo, da ste to razlago lahko razumeli. Zdaj se boste lahko povezali s tem, kaj natančno je zapisano v zgornji datoteki.
Zdaj moramo ustvariti datoteko TestRunner.java
Kot je razloženo v zgornjem razdelku, Cucumber potrebuje datoteko Runner, ki bi bila potrebna za zagon datoteke .feature datoteka, ki vsebuje preskusne scenarije.
- Pojdite v mapo src / test / java v vašem projektu
- Z desno miškino tipko kliknite in ustvarite novo datoteko Java: TestRunner.java
- Ko je datoteka ustvarjena, pod njo postavite naslednje vrstice kode:
import org.junit.runner.RunWith; import com.intuit.karate.junit4.Karate; @RunWith(Karate.class) public class TestRunner { }
- Test Runner je datoteka, ki bo zdaj izvedena za izvedbo želenega scenarija, napisanega v 5. koraku.
# 7) Zdaj smo pripravljeni z obema datotekama TestRunner.Java in userDeatils.feature. Edina naloga, ki nam ostane, je Teči scenarij.
- Pojdite na datoteko TestRunner.java in z desno miškino tipko kliknite datoteko, kot je prikazano na spodnji sliki.
- Izberite Run As -> Junit Test
- Zdaj, ko ste izbrani, boste začeli opazovati, da se je testni primer zdaj začel.
- Počakajte, da se preizkusni skript zažene. Ko končate, boste v oknu opazili nekaj takega, kot je prikazano na spodnji sliki.
- Končno lahko rečemo, da smo uspešno ustvarili svojo prvo osnovno Testni skript uporabljati Karate okvir.
# 8) Nazadnje, okvir Karate daje tudi predstavitev poročila HTML za izvedbo, ki je bila izvedena.
- Odprite ciljno mapo -> surefire-reports-> Tu boste videli svoje poročilo HTML, ki ga lahko odprete.
** Predlagamo vam tudi, da odprete isto z brskalnikom Chrome za boljši videz in občutek.
- Naslednje poročilo HTML vam bo prikazano na sliki Scenariji in preizkus ki je bil izveden za omenjeni scenarij:
Zaključek
V tej vadnici smo obravnavali testiranje API-jev, različna orodja za testiranje, ki so na voljo na trgu, in kako je Karate Framework boljša možnost v primerjavi s svojimi kolegi.
Ustvarili smo svoj prvi osnovni testni skript po postopnem pristopu. Začeli smo z ustvarjanjem osnovnega Projekt Maven v Eclipse IDE ustvariti datoteko .feature, ki vsebuje ves testni scenarij in datoteko Runner za izvedbo testnega primera, omenjenega v datoteki .feature.
Na koncu več korakov smo lahko videli poročilo o izvedbi rezultatov preskusa.
Upamo, da je bila ta vadnica v pomoč začetnikom pri učenju, kako zgraditi svoj prvi testni skript z uporabo Karate Framework in izvesti testiranje API. Ta podroben pristop po korakih je čudovit način za izvajanje in izvajanje različnih testov na API-ju.
Priporočeno branje
- Kako nastaviti Node.js preskusno ogrodje: Vadnica za Node.js
- Vadnica za parasoft SOAtest: orodje za preizkušanje API-jev brez skript
- Vadnica za Mockito: Mockito Framework za posmeh pri preskušanju enot
- Vadnica za testiranje API-jev: Popoln vodnik za začetnike
- Vadnica za TestNG: Uvod v ogrodje TestNG
- Vadnica za Jest - Testiranje enote JavaScript z uporabo okvira Jest
- Vadnica za destruktivno testiranje in nedestruktivno testiranje
- Kako uporabiti poštarja za testiranje različnih formatov API?