Þessi kennsla er kynning á API prófun með Karate Framework. Lærðu um uppbyggingu Karate Test Script og skref til að búa til fyrstu prófunarforskriftina:

API er skammstöfun sem stendur fyrir Application Programming Interface. Í einföldu máli getum við skilgreint það sem hugbúnaðarmiðlun sem gerir samskipti milli forrita kleift.

Við þurfum API próf vegna þess að:

  • Niðurstöður eru birtar hraðar, þess vegna er ekki lengur beðið eftir því að sjá hvort API virki vel.
  • Með hraðari viðbrögðum verður uppsetning þessara API einnig hraðari, sem gerir það kleift að afhenda fljótlegan afgreiðslutíma.
  • Snemma uppgötvun bilunar, jafnvel áður en notendaviðmót appsins er búið til, leyfðu okkur að draga úr áhættu og leiðrétta galla.
  • Möguleg afhending í stórum stíl á skemmri tíma.

Til að geta unnið við API prófun höfum við ýmis verkfæri tiltæk á markaðnum eins og Postman, Mocha og Chai. Þetta hefur sýnt góðan árangur og skilvirka notkun til að prófa API, en þau eru undir miklum kóða. Til að geta notað þetta verður maður að vera tæknilega traustur og kunnugur forritunarmálum.

Karate Framework leysir þetta mál af fyrri hugbúnaðarverkfærum fallega.

Hvað er Karate Framework

Karate? Við skulum tala um karate. Er það þessi frá Japan? Hvað finnst þér? Gæti verið það hinn mikli Bruceþetta Karate Basic Test Script.

Sviðsmynd:

Við munum prófa API með þessari vefslóð.

Slóð: api/users/2

Aðferð: GET

Og við þurfum að sannreyna hvort beiðnin sé að skila Árangurskóða ( 200) eða ekki.

Í einföldu máli ætlum við bara að prófa sýnishorn af API til að sjá hvort það gengur vel eða ekki.

Athugið: Við erum að taka sýnishorn af API sem er hægt að prófa. Þú gætir valið hvaða PATH sem er eða gætir vísað til API.

Smelltu hér til að fá heimild.

#5) Næsta skref okkar væri nú að búa til .feature skrá.

Eins og fjallað er um í kynningarhlutanum er .feature skráin eignin sem hefur verið erft frá Cucumber. Í þessari skrá munum við skrifa út prófunarsviðsmyndirnar sem þarf að framkvæma til að framkvæma API prófunina.

  • Farðu í möppuna src/test/java í verkefninu þínu.

  • Hægri smelltu á það og búðu til nýja skrá – userDetails.feature. Smelltu svo á Finish hnappinn.

Nú munt þú sjá eftirfarandi skrá undir möppunni src/test/java

Grænt lita táknið líkist .eiginleikamyndinni í Cucumber sem við bjuggum til.

  • Þegar skráin hefur verið búin til munum við nú skrifa prófunarsviðsmyndir okkar sem verða ræddar í eftirfarandi kafla.

#6) Þar sem við höfum atburðarásina ogauða . eiginleika skráin tilbúin, nú skulum við byrja með fyrsta handritið okkar. Við skulum byrja að kóða

Skrifaðu eftirfarandi línu af kóða undir userDetails.feature skránni sem við bjuggum til í skrefi #5:

 Feature: fetching User Details Scenario: testing the get call for User Details Given url '//reqres.in/api/users/2' When method GET Then status 200

Við skulum reyna að skilja íhlutirnir sem eru skrifaðir í ofangreinda skrá:

  • Eiginleiki: Lykilorð útskýrir nafn eiginleikans sem við erum að prófa.
  • Bakgrunnur: Þetta er valfrjáls hluti sem er meðhöndlaður sem nauðsynlegur hluti. Þetta er hægt að nota til að skilgreina hvað allt þarf til að prófa API. Það inniheldur HEADER, URL & PARAM valkostir.
  • Sviðsmynd: Sérhver eiginleikaskrá sem þú munt sjá mun hafa að minnsta kosti einn eiginleika (þó það geti gefið margar sviðsmyndir) . Það er lýsingin á prófunartilvikinu.
  • Gefin: Það er skrefið sem þarf að framkvæma áður en annað prófskref er framkvæmt. Það er skylda aðgerð sem á að framkvæma.
  • Hvenær: Það tilgreinir skilyrðið sem ætti að uppfylla til að framkvæma næsta prófunarskref.
  • Þá: Það segir okkur hvað ætti að gerast ef ástandið sem nefnt er í Þegar er uppfyllt.

Athugið: Öll ofangreind leitarorð eru úr Gherkins tungumálinu. Þetta eru staðlaðar leiðir til að skrifa prófunarforskriftirnar með því að nota Cucumber.

Og nokkur fleiri orð sem notuð eru í eiginleikaskránni eru:

  • 200: Það er stöðu/svarkóði sem við erumvæntanleg (Smelltu hér til að fá lista yfir stöðukóða)
  • GET: Þetta er API aðferðin eins og POST, PUT, osfrv.

Við vonum að þessi skýring var auðvelt fyrir þig að skilja. Nú muntu geta tengst því sem nákvæmlega er skrifað í ofangreindri skrá.

Nú þurfum við að búa til TestRunner.java skrá

Eins og útskýrt er hér að ofan kafla, Agúrka þarf Runner skrá sem þyrfti til að keyra .feature skrána sem inniheldur prófunarsviðsmyndirnar.

  • Farðu í möppu src/test/java í verkefninu þínu

  • Hægri smelltu á það og búðu til nýja Java skrá: TestRunner.java
  • Þegar skráin hefur verið búin til, settu eftirfarandi kóðalínur undir hana:
 import org.junit.runner.RunWith; import com.intuit.karate.junit4.Karate; @RunWith(Karate.class) public class TestRunner { }
  • Test Runner er skráin sem nú verður keyrð til að framkvæma æskileg atburðarás sem hefur verið skrifuð undir skrefi #5.

#7) Nú erum við tilbúin með bæði skrárnar TestRunner.Java og userDeatils.feature. Eina verkefnið sem eftir er fyrir okkur er að Keyra forskriftina.

  • Farðu í TestRunner.java skrána og hægrismelltu á skrána eins og sýnt er á myndinni fyrir neðan.

  • Veldu Run As -> Junit Test
  • Nú, þegar það hefur verið valið, muntu byrja að fylgjast með því að prófunartilvikið er hafið.
  • Bíddu þar til prófunarforskriftin keyrir. Þegar því er lokið muntu sjá eitthvað eins og sýnt er á myndinni hér að neðan í glugganum þínum.

  • Að lokum getum við sagtað við höfum búið til fyrsta grunn prófunarforskriftina okkar með því að nota karate ramma.

#8) Síðast, Karate ramma gefur einnig HTML skýrslukynningu fyrir framkvæmdina sem hefur verið framkvæmd.

  • Go to Target Folder -> surefire-skýrslur-> Hér muntu sjá HTML skýrsluna þína sem þú getur opnað.

** Við mælum einnig með að þú opnir það sama með Chrome Vafri fyrir betra útlit og tilfinningu.

  • Eftirfarandi HTML skýrsla verður sýnd þér sem sýnir sviðsmyndir & Próf sem hefur verið framkvæmt fyrir nefnda atburðarás:

Niðurstaða

Í þessari kennslu höfum við fjallað um API próf, mismunandi prófanir verkfæri sem eru fáanleg á markaðnum og hvernig Karate Framework er betri kostur miðað við hliðstæða þess.

Við fylgdum skref-fyrir-skref nálgun til að búa til fyrstu grunnprófunarforskriftina okkar. Við byrjuðum á því að búa til grunn Maven verkefni í Eclipse IDE til að búa til .feature skrá, sem inniheldur alla prófunaratburðarásina og Runner skrá til að framkvæma prófunartilvikið sem nefnt er í .feature skránni.

Í lok margra skrefa gátum við séð framkvæmdarskýrsluna um prófunarniðurstöðurnar.

Við vonum að þessi kennsla hafi verið gagnleg fyrir byrjendur við að læra að búa til fyrsta prófunarforritið sitt með því að nota Karate Framework og framkvæma API próf. Þetta ítarlega skref fyrir skrefnálgun er frábær leið til að keyra og framkvæma ýmsar prófanir á API.

NEXT>>

Lee hafði þróað þetta í frítíma sínum.

Þó við viljum kafa ofan í áhugaverðar rætur karate, skulum við tala um Karate tólið sem hefur verið þróað í bili. eftir Peter Thomas , eitt af frábæru verkfærunum sem koma API prófurum til bjargar.

Karate ramma fylgir Cucumber stílnum að skrifa forritið sem fylgir BDD nálguninni. Setningafræðin er auðskilin fyrir þá sem ekki eru forritarar. Og þessi rammi er eina API prófunarverkfærið sem hefur sameinað API sjálfvirkni og frammistöðuprófun í eitt sjálfstætt tól.

Það veitir notendum möguleika á að framkvæma prófunartilvikin í Parallel og framkvæma JSON & XML athuganir.

Með þessum upplýsingum er hægt að álykta ákveðin lykilatriði til að skilja Karate tólið í smáatriðum:

  • Karate er BDD prófunarrammi í staðinn af TDD.
  • Það er hannað til að vera auðvelt fyrir þá sem ekki eru forritarar. Þessi eiginleiki breytir leik þar sem hann gerir mörgum kleift að nota og aðgengi að fleiri óháð tæknilegum bakgrunni eða getu.
  • Hann notar Cucumber eiginleikaskrána og Gherkins tungumálið til að skrifa prófið sem er mjög auðvelt að skilja.

Allir þessir eiginleikar gera það að einu hagstæðasta sjálfvirkniverkfærinu sem til er í dag.

History Of Karate Framework

Búið til af ' Peter Thomas' árið 2017, þessi hugbúnaður miðar að því að gera prófanirvirkni sem er aðgengileg fyrir alla. Hún var skrifuð á Java og flestir bjuggust við að skrár hennar væru líka á sama tungumáli, en sem betur fer er það ekki raunin.

Hún notar frekar Gherkins skrár, sem er afleiðing af tengslum þess við Agúrka ramma. Sjálfvirknihugbúnaðurinn er framlenging á Cucumber og erfir því notkun á Gherkins skrá í rekstri hans. Stóri munurinn á þessu tvennu er að Karate notar ekkert Java meðan á prófun stendur, en Cucumber gerir það.

Þetta er einmitt ástæðan fyrir því að það kemur til móts við þá sem ekki eru forritarar þar sem Gherkins setningafræðin er frábær læsileg og yfirgripsmikil. Þetta er ástæðan fyrir því að karate hentar best og er mælt með því að komast inn í heim sjálfvirkrar API-prófunar.

Eftirfarandi eru nokkrir eiginleikar karateprófunarrammans:

  • Notar auðskiljanlegt Gherkins tungumál.
  • Það krefst engrar tæknilegrar forritunarþekkingar eins og Java.
  • Það er byggt á vinsælum gúrkustöðlum.
  • Auðvelt að búa til ramma.
  • Samhliða prófun er kjarnavirkni sem Karate sjálft býður upp á, þess vegna þurfum við ekki að vera háð Maven, Gradle osfrv.
  • UI til að kemba prófið.
  • Hringt í eiginleikaskrá úr annarri skrá.
  • Býður upp á gagnaprófun sem er smíðuð innanhúss og þarf því ekki að vera háð ytri ramma.
  • Innbyggð heimahvíldSkýrslur. Auk þess er hægt að samþætta hana við gúrkuna fyrir betri notendaskýrslur og meiri skýrleika.
  • Býður innanhússstuðningi við að skipta um stillingar á mismunandi prófunarumhverfi (QA, Stage, Prod, Pre-Prod).
  • Óaðfinnanlegur stuðningur við CI/CD samþættingu sem getur verið gagnlegur.
  • Getur sinnt ýmsum HTTP símtölum:
    • Web Socket support
    • SOAP request
    • HTTP
    • Meðhöndlun vafrakaka
    • HTTPS
    • HTML-formsgögn
    • XML beiðni

Samanburður á Karate og Rest-Assured

Rest-assured : Þetta er Java-undirstaða bókasafn til að prófa REST þjónustuna. Það notar Java tungumál til að skrifa kóðalínurnar. Það hjálpar við að prófa fjölda beiðnaflokka, sem leiðir enn frekar til sannprófunar á mismunandi viðskiptarökfræðisamsetningum.

Karate Framework : Gúrku/gúrkur byggt tól, notað til að prófa fyrir SOAP & REST þjónusta.

Eftirfarandi tafla sýnir nokkra áberandi mun á Rest-Assured & Karate Framework:

S.No Grundvöllur Karate Framework HVIÐVÍÐUR
1 Tungumál Það notar blöndu af gúrku og gúrkum Það notar Java Language
2 Kóðastærð Venjulega er línan af kóði er minni, þar sem hann fylgir agúrkulíkri uppbyggingu Kóðalína er meiri þar sem hann felur í sérnotkun Java tungumála
3 Tækniþekking krafist Ekki forritarar geta auðveldlega skrifað Gherkins kóðann Tækniþekking er nauðsynleg til að skrifa Java kóða
4 Gagnadrifið próf Þarftu að nota TestNG eða sambærilegt til að styðja sama Hægt er að nota innanhússmerki til að styðja við gagnaprófun
5 Býður það upp á SOAP-símtalsstuðning Já, það veitir Það tengist aðeins REST beiðni
6 Samhliða prófun Já, samhliða prófun er auðveldlega studd með samhliða skýrslugerð líka Ekki að miklu leyti. Þó fólk hafi reynt að gera þetta er bilanatíðnin meiri en árangurinn
7 Skýrslugerð Það veitir innri skýrslugerð og þarf þess vegna ekki að vera háð utanaðkomandi viðbótum. Við getum meira að segja samþætt það við Gúrkuskýrsluviðbót fyrir betra notendaviðmót. Þarf að vera háð ytri viðbótum eins og Junit, TestNG
8 CSV stuðningur fyrir ytri gögn Já, frá Karate 0.9.0 Nei, þarf að nota Java kóða eða bókasafn
9 Vefviðmót sjálfvirkni Já, frá Karate 0.9.5 er sjálfvirkni vefviðmóts möguleg Nei, það er ekki stutt
10 Dæmi um GET Given param val1 = ‘name1’

And param val2 = ‘name2’

And path ‘somelocation’

When method get

Then match response contains ‘OKAY’

given().

param("val1", "name1").

param("val2", "name2").

when().

get("/some\location").

then().

body(containsString("OKAY"));

Þess vegna, eins og sýnt er í munur hér að ofan, það er óhætt að segja að karate sé eitt það auðveldasta sem allir geta gert.

Verkfæri sem þarf til að vinna með karate ramma

Nú, þar sem við höfum fengið grunnþekkingu okkar um Karate Framework á punkti, við skulum skoða ferla og verkfæri sem þarf til að setja upp Karate umhverfið.

#1) Eclipse

Eclipse er samþætt þróunarumhverfi notað. á sviði tölvuforritunar. Það er aðallega notað fyrir Java forritun. Eins og áður hefur komið fram er Karate skrifað í Java, svo það er skynsamlegra hvers vegna Eclipse er IDE fyrir API prófunarhugbúnaðinn. Önnur ástæða er sú að þetta er opið tól og þetta er frekar sterk ástæða til að velja þetta tól.

Athugið: Við gætum jafnvel notað IntelliJ, Visual Studio og aðra mismunandi ritstjórar sem eru fáanlegir á markaðnum.

#2) Maven

Þetta er sjálfvirkni tól sem er notað fyrst og fremst til að byggja upp Java verkefni. Það er ein leið til að setja upp Karate umhverfi og skrifa kóðann. Til að setja upp Eclipse með Maven kröfum, geturðu smellt hér til að setja Maven upp.

Þegar þú vinnur í Maven skaltu nota Maven háðir sem myndu hjálpa þér að styðja Karate Framework.

Eftirfarandi ósjálfstæði verða notuð með Maven í pom.xml.

   com.intuit.karate karate-apache 0.9.5 test   com.intuit.karate karate-junit4 0.9.5 test  

Athugið: Nýjustu útgáfurnar gætuvera í boði í Maven geymslunni.

#3) Gradle

Gradle er valkostur við Maven og hægt er að nota hann í sömu getu. Þeir eru líkir og ólíkir en þeir geta jafnt verið notaðir við að setja upp umhverfi fyrir Karate kóðana okkar.

Það er auðveldara í notkun, sveigjanlegt og mælt er með því að nota það þegar forritið okkar hefur nokkrar mátunar- og stjórnunarkröfur með fullt af viðbótum. Uppsetningarkóði Gradle myndi líta einhvern veginn svona út,

testCompile 'com.intuit.karate:karate-junit4:0.6.0' testCompile 'com.intuit.karate:karate-apache:0.6.0'

Athugið: Þú gætir annað hvort notað MAVEN eða GRADLE.

#4) Java Umhverfisuppsetning í kerfinu þínu

Þarftu að setja upp JDK og JRE umhverfið til að byrja með Karate Framework forskriftirnar.

Uppbygging Karate Test Script

Karate prófunarforskrift er þekkt fyrir að hafa „.feature“ viðbótina. Þessi eign er í arf frá Gúrku. Skipulag skráa í Java-samþykktinni er einnig leyfilegt. Þér er frjálst að skipuleggja skrárnar þínar í samræmi við Java pakkavenjur.

Hins vegar gefa Maven leiðbeiningarnar fyrirmæli um að geymsla á skrám sem ekki eru Java sé gerð sérstaklega. Þær eru gerðar í src/test/resources uppbyggingu. Og Java skrárnar eru geymdar undir src/main/java .

En samkvæmt höfundum Karate Framework, þá trúa þeir því eindregið að við höldum bæði Java skrám og skrám sem ekki eru Java. hlið. Samkvæmt þeim er miklu auðveldara að líta út fyrir*.java og *.feature skrár þegar þeim er haldið saman, frekar en að fylgja venjulegu Maven uppbyggingunni.

Þetta er auðvelt að gera með því að fínstilla pom.xml á eftirfarandi hátt (Fyrir Maven):

    src/test/java  **/*.java     ...   

Eftirfarandi er yfirlit yfir almenna uppbyggingu Karate Framework:

Nú, þar sem þessi Karate Framework notar Runner skrána, sem einnig þarf í Cucumber til að keyra eiginleika skrárnar, þannig að mest af skrifunum mun fylgja Cucumber stöðlunum.

En ólíkt Cucumber þurfa skrefin ekki skýra skilgreiningu í Karate og sem , aftur á móti auka sveigjanleika og auðvelda rekstur. Við þurfum ekki að bæta við auka límið sem við þurfum venjulega að bæta við þegar við fylgjum agúrka rammanum.

„Runner“ flokkurinn er oftast nefndur TestRunner.java.

Þá mun TestRunner.java skráin vera í formi:

 import com.intuit.karate.junit4.Karate; import org.junit.runner.RunWith; @RunWith(Karate.class) public class TestRunner { }

Og talandi um .feature skrána, hún inniheldur allar prófanir atburðarás sem þarf að prófa til að ganga úr skugga um að API virki samkvæmt væntanlegum kröfum.

Almenn *.feature skrá lítur svipað út eins og sýnt er hér að neðan:

 Feature: fetching User Details Scenario: testing the get call for User Details Given url '//reqres.in/api/users/2' When method GET Then status 200

Að búa til fyrsta grunn Karate prófforritið

Þessi hluti mun hjálpa þér að hefjast handa við að búa til allra fyrsta prófforritið þitt, sem mun hjálpa þér að umbreyta API í formi Karate ramma.

Áður en við skrifum grunnforskriftir fyrir karatepróf,vinsamlegast settu upp eftirfarandi kröfur á vélina þína:

  • Eclipse IDE
  • Maven. Stilltu viðeigandi Maven slóð.
  • JDK & JRE. Stilltu viðeigandi slóð.

Við skulum skoða skref-fyrir-skref nálgun:

#1) Búðu til nýtt MAVEN verkefni í Eclipse Editor

  • Opna Eclipse
  • Smelltu á File. Veldu nýtt verkefni.

  • Veldu Maven Project

  • Veldu staðsetningu vinnusvæðisins.
  • Veldu Archetype (venjulega veljum við " Maven-archetype-quickstart 1.1 " fyrir einföld Maven verkefni).
  • Veljum hópauðkennið & amp; Artifact ID (við höfum notað eftirfarandi gildi í dæminu okkar).
    • Group ID : Karate
    • Artifact ID: KarateTestScriptsSample
  • Smelltu á Finish til að klára uppsetningu.

#2) Þegar búið er til, muntu nú geta séð eftirfarandi uppbyggingu í Project Explorer glugganum.

#3) Taktu með allar ósjálfstæðin þín.

Fyrsta skrefið okkar, eftir uppsetninguna munum við innihalda allar ósjálfstæðin sem krafist er fyrir framkvæmdina. Við munum geyma allt merkið undir POM.xml (að því gefnu að þú sért nú þegar meðvitaður um POM.xml notkunina).

  • Opnaðu POM.xml og afritaðu kóðann hér að neðan undir ávanamerkinu og vistaðu skrá.
  com.intuit.karate karate-apache 0.9.5 test   com.intuit.karate karate-junit4 0.9.5 test 

Smelltu hér til að fá heimild.

#4) Við skulum hugleiða atburðarásina, hvað ætlum við að prófa í

Skruna efst