Ky tutorial është një hyrje në testimin e API duke përdorur Kornizën Karate. Mësoni rreth strukturës së Skriptit të Testit të Karatesë dhe hapave për të ndërtuar skriptin e parë të testit:

API është një akronim që qëndron për Ndërfaqen e programimit të aplikacionit. Me fjalë të thjeshta, ne mund ta përkufizojmë atë si një ndërmjetës softuerësh që lejon komunikimin ndërmjet aplikacioneve.

Ne kemi nevojë për testim API sepse:

  • Rezultatet publikohen më shpejt, prandaj nuk ka më pritje për të parë nëse API po funksionon mirë.
  • Me përgjigjen më të shpejtë, vendosja e këtyre API-ve gjithashtu bëhet më e shpejtë, duke lejuar kështu kohën e shpejtë të rikthimit.
  • Zbulimi i hershëm i dështimit, edhe përpara se të krijohet ndërfaqja e përdoruesit të aplikacionit, na lejoni të zbusim rreziqet dhe të korrigjojmë gabimet.
  • Dorëzimi në shkallë të gjerë është i mundur në një periudhë më të shkurtër.

Për të qenë në gjendje të punojmë në Testimin API, ne kemi mjete të ndryshme të disponueshme në treg si Postman, Mocha dhe Chai. Këto kanë demonstruar rezultate të mira dhe përdorim efektiv për testimin e API-ve, megjithatë, këto janë shumë të ndikuar nga kodi. Për të qenë në gjendje t'i përdorni këto, njeriu duhet të jetë teknikisht i shëndoshë dhe i njohur me gjuhët e programimit.

Korniza e Karatesë e zgjidh bukur këtë problem të mjeteve të tij të mëparshme softuerike.

Çfarë është Korniza e Karatesë

Karate? Le të flasim për Karate. A është ai nga Japonia? Çfarë mendoni ju? Ndoshta Brusi i madhkëtë skript të testit bazë të karatesë.

Skenari:

Ne do të testojmë një API me këtë URL.

Rruga: api/users/2

Metoda: GET

Dhe ne duhet të vërtetojmë , nëse kërkesa po kthen një kod suksesi ( 200) apo jo.

Me fjalë të thjeshta, ne thjesht do të testojmë një model API për të parë nëse po ekzekutohet apo jo me sukses.

Shënim: Ne po marrim një mostër API që është në dispozicion për testim. Ju mund të zgjidhni çdo SHTEGIM ose mund t'i referoheni API-së tuaj.

Kliko këtu për burimin.

#5) Tani hapi ynë tjetër do të ishte krijimi i një Skedari .feature .

Siç u diskutua në pjesën hyrëse, skedari .feature është vetia që është trashëguar nga Cucumber. Në këtë skedar, ne do të shkruajmë skenarët e testimit që duhet të ekzekutohen për kryerjen e testimit të API.

  • Shkoni te Dosja src/test/java në projektin tuaj.

  • Klikoni me të djathtën mbi të dhe krijoni një skedar të ri – userDetails.feature. Më pas klikoni në butonin Finish.

Tani do të shihni skedarin e mëposhtëm nën dosjen src/test/java

Ikona Me ngjyrë jeshile ngjan me .feature fi le në Cucumber që sapo krijuam.

  • Pasi të jetë krijuar skedari, tani do të shkruajmë skenarët tanë të testimit që do të diskutohen në seksionin vijues.

#6) Meqenëse kemi skenarin dheskedari bosh . veçori gati, tani le të fillojmë me skriptin tonë të parë. Le të fillojmë të kodojmë

Shkruani rreshtin e mëposhtëm të Kodit nën skedarin userDetails.feature që krijuam në hapin #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

Le të përpiqemi të kuptojmë komponentët që janë shkruar në skedarin e mësipërm:

  • Veçori: Fjala kyçe shpjegon emrin e veçorisë që po testojmë.
  • Sfondi: Ky është një seksion opsional që trajtohet si një seksion parakusht. Kjo mund të përdoret për të përcaktuar se çfarë nevojitet për të testuar API-në. Ai përmban HEADER, URL & Opsionet PARAM .
  • Skenari: Çdo skedar veçori që do të shihni do të ketë të paktën një veçori (edhe pse mund të japë skenarë të shumtë ) . Është përshkrimi i rastit të testimit.
  • Duhet: Është hapi që duhet të ekzekutohet përpara se të kryhet ndonjë hap tjetër testimi. Është një veprim i detyrueshëm për t'u kryer.
  • Kur: Përcakton kushtin që duhet të plotësohet për të kryer hapin tjetër të provës.
  • Pastaj: Na tregon se çfarë duhet të ndodhë në rast se kushti i përmendur në Kur plotësohet.

Shënim: Të gjitha fjalët kyçe të sipërpërmendura janë nga gjuha e trangujve. Këto janë mënyra standarde e shkrimit të skripteve të testimit duke përdorur Kastravec.

Dhe disa fjalë të tjera të përdorura në skedarin e veçorive janë:

  • 200: Është kodi i statusit/përgjigjes që jeminë pritje (Kliko këtu për listën e kodeve të statusit)
  • MERRNI: Është metoda API si POST, PUT, etj.

Shpresojmë që ky shpjegim ishte e lehtë për ty ta kuptosh. Tani do të jeni në gjendje të lidheni me atë që saktësisht është shkruar në skedarin e mësipërm.

Tani duhet të krijojmë një skedar TestRunner.java

Siç shpjegohet në më sipër seksioni, Cucumber ka nevojë për një skedar Runner që do të kërkohet për të ekzekutuar skedarin .feature që përmban skenarët e testimit.

  • Shko te Folder src/test/java në projektin tuaj

  • Klikoni me të djathtën mbi të dhe krijoni një skedar të ri Java: TestRunner.java
  • Pasi të jetë krijuar skedari, vendosni linjat e mëposhtme të kodit poshtë tij:
 import org.junit.runner.RunWith; import com.intuit.karate.junit4.Karate; @RunWith(Karate.class) public class TestRunner { }
  • Test Runner është skedari që tani do të ekzekutohet për të kryer skenari i dëshiruar që është shkruar në hapin #5.

#7) Tani jemi gati me të dy skedarët TestRunner.Java dhe userDeatils.funksion. E vetmja detyrë që na ka mbetur është të Ekzekutojmë skriptin.

  • Shko te skedari TestRunner.java dhe kliko me të djathtën mbi skedarin siç tregohet në imazhin e mëposhtëm.

  • Zgjidh Run As -> Junit Test
  • Tani, pasi të zgjidhet, do të filloni të vëzhgoni se rasti i testit tani ka filluar.
  • Prisni që skripti i testit të ekzekutohet. Pasi të keni mbaruar, do të vëzhgoni diçka siç tregohet në imazhin e mëposhtëm në dritaren tuaj.

  • Më në fund, mund të themise ne kemi krijuar me sukses Skriptin tonë të parë bazë duke përdorur kornizën Karate.

#8) Së fundi, Karateja kornizë jep gjithashtu një prezantim të raportit HTML për ekzekutimin që është kryer.

  • Shko te Dosja e synuar -> raporte të sigurta-> Këtu do të shihni raportin tuaj HTML që mund ta hapni.

** Ne gjithashtu do t'ju sugjeronim të hapni të njëjtin duke përdorur Chrome Shfletuesi për një pamje dhe ndjesi më të mirë.

  • Raporti në vijim HTML do t'ju shfaqet duke përshkruar Skenarët & Testi që është ekzekutuar për skenarin e përmendur:

Përfundim

Në këtë tutorial, kemi diskutuar testimin API, testime të ndryshme mjetet e disponueshme në treg dhe se si Korniza e Karatesë është një opsion më i mirë në krahasim me homologët e tij.

Ne ndoqëm një qasje hap pas hapi për të krijuar skriptin tonë të parë bazë të testit. Ne filluam me krijimin e një projekti bazë Maven në Eclipse IDE për të krijuar një skedar .feature, i cili përmban të gjithë skenarin e testimit dhe një skedar Runner për të ekzekutuar rastin e testimit të përmendur në skedarin .feature.

Në fund të hapave të shumtë, ne mund të shihnim raportin e ekzekutimit të rezultateve të testit.

Shpresojmë se ky tutorial ishte i dobishëm për fillestarët në mësimin se si të ndërtonin skenarin e tyre të parë të testit duke përdorur Kornizën Karate dhe kryeni Testimin API. Kjo e detajuar hap pas hapiqasja është një mënyrë e mrekullueshme për të ekzekutuar dhe ekzekutuar teste të ndryshme në API.

NEXT>>

Lee e kishte zhvilluar këtë në kohën e tij të lirë.

Megjithëse ne do të donim të thelloheshim në rrënjët interesante të Karatesë, tani për tani, le të flasim për Mjetin e Karatesë që është zhvilluar nga Peter Thomas , një nga mjetet e shkëlqyera që vjen në shpëtimin e testuesve të API.

Kuadri i Karatesë ndjek stilin Cucumber të shkrimit të programit që ndjek qasjen BDD. Sintaksa është e lehtë për t'u kuptuar nga jo-programuesit. Dhe ky kuadër është i vetmi mjet testimi API që ka kombinuar Automatizimin API dhe testimin e performancës në një mjet të vetëm të pavarur.

Ai u siguron përdoruesve mundësinë për të ekzekutuar rastet e testimit paralelisht dhe për të kryer JSON & Kontrollon XML.

Me këtë informacion, disa pika kyçe mund të nxirren për të kuptuar më tej mjetin e Karatesë në detaje:

  • Karate është një kornizë testimi BDD në vend të kësaj i një TDD.
  • Është krijuar që të jetë e lehtë për joprogramuesit. Ky funksion ndryshon lojën pasi lejon më shumë përdorim dhe akses nga shumë njerëz, pavarësisht nga formimi ose kapaciteti i tyre teknik.
  • Përdor skedarin e veçorive Cucumber dhe gjuhën Gherkins për të shkruar testin që është shumë e lehtë për t'u kuptuar.

Të gjitha këto veçori e bëjnë atë një nga mjetet më të favorshme të automatizimit të disponueshëm sot.

History Of Karate Framework

Krijuar nga ' Peter Thomas' në 2017, ky softuer synon të bëjë testimefunksionalitete të disponueshme për të gjithë. Ai ishte shkruar në Java dhe shumica e njerëzve prisnin që skedarët e tij të ishin gjithashtu në të njëjtën gjuhë, megjithatë, për fat të mirë, nuk është kështu.

Përkundrazi, ai përdor skedarë Gherkins, që është rezultat i marrëdhënies së tij me Korniza e kastravecit. Softueri i automatizimit është një zgjatim i Cucumber, prandaj trashëgon përdorimin e skedarit Gherkins në funksionimin e tij. Dallimi i madh midis të dyjave është se Karateja nuk e përdor Java-në gjatë testimit, por Kastraveci e bën këtë.

Kjo është pikërisht arsyeja pse u shërben joprogramuesve pasi sintaksa Gherkins është super e lexueshme dhe gjithëpërfshirëse. Kjo është arsyeja pse Karateja është më e përshtatshme dhe e rekomanduar për të hyrë në botën e testimit të automatizuar të API-së.

Më poshtë janë disa veçori të Kornizës së Testimit të Karatesë:

  • Përdor gjuhën e lehtë për t'u kuptuar Gherkins.
  • Nuk kërkon njohuri teknike programimi si Java.
  • Ajo bazohet në standardet e njohura të Cucumber.
  • Lehtë për të krijuar një kornizë.
  • Testimi paralel është funksionaliteti kryesor që ofrohet nga vetë Karateja, prandaj nuk duhet të varemi nga Maven, Gradle , etj.
  • UI për korrigjimin e testit.
  • Thirrja e një skedari veçori nga një skedar tjetër.
  • Siguron mbështetje për Testimin e Drejtuesit të të Dhënave që është ndërtuar brenda, prandaj nuk ka nevojë të varet nga kornizat e jashtme.
  • Pushim vendas i integruarRaportet. Plus, mund të integrohet me Cucumber për raporte më të mira ndërfaqeje dhe më shumë qartësi.
  • Ofron mbështetje të brendshme për ndërrimin e konfigurimit në mjedise të ndryshme testimi (QA, Stage, Prod, Pre-Prod).
  • Mbështetje e pandërprerë për integrimin CI/CD që mund të jetë e dobishme.
  • E aftë për të trajtuar thirrje të ndryshme HTTP:
    • Mbështetje për Web Socket
    • Kërkesë SOAP
    • HTTP
    • Trajtimi i kukive të shfletuesit
    • HTTPS
    • Të dhënat e formës HTML
    • Kërkesa XML

Krahasimi i Karatesë dhe i Sigurisë

Qëndroni i sigurt : Është një bibliotekë e bazuar në Java për të testuar shërbimet REST. Ai përdor gjuhën Java për të shkruar linjat e kodit. Ndihmon në testimin e kategorive të shumta të kërkesave, gjë që rezulton më tej në verifikimin e kombinimeve të ndryshme të logjikës së biznesit.

Karate Framework : Një mjet i bazuar në Kastravec/Gherkins, i përdorur për testimin për SOAP & Shërbimet REST.

Tabela e mëposhtme liston disa dallime më të dukshme midis Rest-Assured & Korniza e Karatesë:

S.Jo Baza Korniza e Karatesë REST-I siguruar
1 Gjuha Përdor një kombinim të kastravecit dhe trangujve Ai përdor gjuhën Java
2 Madhësia e kodit Zakonisht, linja e kodi është më i vogël, pasi ndjek strukturën e ngjashme me kastravecin Linja e kodit është më shumë pasi përfshinpërdorimi i gjuhës Java
3 Kërkohet njohuri teknike Jo-programuesit mund të shkruajnë lehtësisht kodi Gherkins Njohuritë teknike kërkohen për të shkruar kodin Java
4 Testimi i drejtuar nga të dhënat Nevoja për të përdorur TestNG ose ekuivalent për të mbështetur të njëjtat Etiketat e brendshme mund të përdoren për të mbështetur testimin e të dhënave
5 A ofron mbështetje për thirrjet SOAP Po, ofron Ka lidhje vetëm me një kërkesë REST
6 Testimi paralel Po, testimi paralel mbështetet lehtësisht me gjenerimin e raporteve paralele gjithashtu Jo në një masë të madhe. Megjithëse njerëzit janë përpjekur ta bëjnë këtë, shkalla e dështimit është më shumë se shkalla e suksesit
7 Raportimi Ai siguron raportim të brendshëm, prandaj nuk ka nevojë të jetë i varur nga shtojcat e jashtme. Ne mund ta integrojmë edhe me shtojcën e raportimit Cucumber për ndërfaqe më të mirë. Duhet të jemi të varur nga shtojcat e jashtme si Junit, TestNG
8 Mbështetje CSV për të dhëna të jashtme Po, nga Karate 0.9.0 Jo, duhet të përdorni kodin Java ose bibliotekën
9 Ueb UI Automation Po, nga Karate 0.9.5 Web-UI Automatizimi është i mundur Jo, nuk mbështetet
10 Shembull 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"));

Prandaj, siç tregohet nga dallimet e mësipërme, është e sigurt të thuhet se Karateja është një nga gjërat më të lehta që mund të bëjë çdokush.

Mjetet e nevojshme për të punuar me Kornizën e Karatesë

Tani, pasi kemi marrë njohuritë tona bazë rreth Korniza e Karatesë në pikën, le të shohim proceset dhe mjetet e kërkuara në konfigurimin e mjedisit të Karatesë.

#1) Eclipse

Eclipse është një mjedis zhvillimi i integruar i përdorur në fushën e programimit kompjuterik. Përdoret kryesisht për programim Java. Siç u përmend më herët, Karateja është shkruar në Java, kështu që ka më shumë kuptim pse Eclipse është IDE-ja kryesore për softuerin e testimit API. Një arsye tjetër është se është një mjet me burim të hapur dhe kjo është një arsye mjaft e fortë për të zgjedhur këtë mjet.

Shënim: Ne madje mund të përdorim IntelliJ, Visual Studio dhe të tjera të ndryshme redaktorët e disponueshëm në treg.

#2) Maven

Ky është një mjet automatizimi ndërtimi që përdoret kryesisht për ndërtimin e projekteve Java. Është një mënyrë për të krijuar një mjedis Karate dhe për të shkruar kodin. Për të konfiguruar kërkesat tuaja të Eclipse me Maven, mund të klikoni këtu për instalimin e Maven.

Ndërsa punoni në Maven, përdorni varësitë e Maven që do t'ju ndihmonin të mbështesni Karate Framework.

Sa më poshtë varësitë do të përdoren me Maven në pom.xml.

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

Shënim: Versionet e fundit mund tëtë jetë i disponueshëm në depon e Maven.

#3) Gradle

Gradle është një alternativë ndaj Maven dhe mund të përdoret në kapacitet të barabartë. Ato kanë ngjashmëritë dhe dallimet e tyre, por mund të përdoren në mënyrë të barabartë në vendosjen e një mjedisi për kodet tona të Karatesë.

Është më e lehtë për t'u përdorur, fleksibël dhe rekomandohet të përdoret kur aplikacioni ynë ka disa kërkesa modularizimi dhe menaxhimi me një mori shtojcash. Kodi i konfigurimit të Gradle do të duket diçka si ky,

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

Shënim: Mund të përdorni MAVEN ose GRADLE.

#4) Konfigurimi i mjedisit Java në sistemin tuaj

Duhet të konfiguroni mjedisin JDK dhe JRE për të filluar me skriptet e Kornizës Karate.

Struktura e Skriptit të Testit të Karatesë

Një skenar provë karateje është i njohur për zotërimin e shtesës ".feature". Kjo pronë është trashëguar nga Kastraveci. Organizimi i skedarëve në konventën Java është gjithashtu i lejuar. Jeni të lirë të organizoni skedarët tuaj sipas konventave të paketës Java.

Megjithatë, udhëzimet e Maven udhëzojnë që ruajtja e skedarëve jo Java të bëhet veçmas. Ato kryhen në një strukturë src/test/burime . Dhe skedarët Java mbahen nën src/main/java .

Por, sipas krijuesve të Kornizës së Karatesë, ata besojnë fuqimisht se ne i mbajmë skedarët Java dhe ato jo-Java pranë anësor. Sipas tyre, është shumë më e lehtë të kujdesesh për të*.java dhe *.funksionojnë skedarët kur mbahen së bashku, në vend që të ndjekin strukturën standarde Maven.

Kjo mund të bëhet lehtësisht duke rregulluar pom.xml tuaj si më poshtë (Për Maven):

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

Në vijim është skica e strukturës së përgjithshme të Kornizës së Karatesë:

Tani, meqenëse kjo Kornizë Karate po përdor skedari Runner, i cili gjithashtu nevojitet te Cucumber për të ekzekutuar skedarët e veçorive, kështu që shumica e shkrimeve do të ndjekin standardet e Cucumber.

Por, ndryshe nga Cucumber, hapat nuk kërkojnë një përcaktim të qartë në Karate dhe cilat , nga ana tjetër, rrisin fleksibilitetin dhe lehtësinë e operacioneve. Nuk kemi nevojë të shtojmë ngjitësin shtesë që duhet të shtojmë zakonisht kur ndjekim kornizën e Cucumber.

Klasa "Runner" në shumicën e rasteve quhet TestRunner.java.

Pastaj skedari TestRunner.java do të marrë formën e:

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

Dhe duke folur për skedarin .feature , ai përmban të gjithë testimin skenarë që duhet të testohen për t'u siguruar që API po funksionon sipas kërkesave të pritshme.

Një skedar i përgjithshëm *.feature duket diçka si tregohet më poshtë:

 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

Krijimi i skriptit të parë bazë të testit të karatesë

Ky seksion do t'ju ndihmojë të filloni me krijimin e skriptit tuaj të parë të testit, i cili do t'ju ndihmojë të konvertoni API-të në formën e një kuadri Karate.

Para se të shkruajmë skriptet bazë të testit të Karatesë,ju lutemi instaloni kushtet e mëposhtme në kompjuterin tuaj:

  • Eclipse IDE
  • Maven. Cakto shtegun e duhur Maven.
  • JDK & JRE. Vendosni rrugën e duhur.

Le t'i hedhim një sy qasjes hap pas hapi:

#1) Krijo një i ri MAVEN Projekti në Eclipse Editor

  • Open Eclipse
  • Klikoni në File. Zgjidh projektin e ri.

  • Zgjidh projektin Maven

  • Zgjidh vendndodhjen e Hapësirës së Punës.
  • Zgjidhni Arketipin (zakonisht zgjedhim " Maven-archetype-quickstart 1.1 " për projekte të thjeshta Maven).
  • Sigurojmë ID-ja e grupit & ID-ja e Artifaktit (ne kemi përdorur vlerat e mëposhtme në shembullin tonë).
    • ID-ja e grupit : Karate
    • ID-ja e artifaktit: KarateTestScriptsSample
  • Klikoni mbi Finish për të përfunduar konfigurimi.

#2) Pasi të krijohet, tani do të mund të shihni strukturën e mëposhtme në dritaren e Project Explorer.

#3) Përfshini të gjitha varësitë tuaja.

Hapi ynë i parë, pas konfigurimit, ne do të përfshijmë të gjitha varësitë që do të kërkohen për ekzekutimin. Ne do ta mbajmë të gjithë etiketën nën POM.xml (duke supozuar se tashmë jeni në dijeni të përdorimit të POM.xml).

  • Hapni POM.xml dhe kopjoni kodin e mëposhtëm nën etiketën e varësisë dhe ruani skedar.
  com.intuit.karate karate-apache 0.9.5 test   com.intuit.karate karate-junit4 0.9.5 test 

Kliko këtu për burimin.

#4) Le të shqyrtojmë skenarin, çfarë do të testojmë në

Lëviz në fillim