Ev tutorial danasîna Testkirina API-ê ye ku bi karanîna Çarçoveya Karateyê tê bikar anîn. Fêrbûna strukturên Skrîpta Testa Karateyê û gavên ji bo avakirina skrîpta ceribandinê ya yekem fêr bibin:

API kurtenivîsek e ku tê wateya Navbera Bernamesaziya Serlêdanê. Bi gotinên hêsan, em dikarin wê wekî navbeynkarek nermalavê ku destûrê dide ragihandinê di navbera sepanan de pênase bikin.

Pêdiviya me bi ceribandina API heye ji ber ku:

  • Encam zûtir têne weşandin, Ji ber vê yekê êdî li bendê ne ku hûn bibînin ka API baş dixebite.
  • Bi bersivdana bilez re, bicîhkirina van API-yan jî zûtir dibe, ji ber vê yekê rê dide dema zivirîna bilez.
  • Destpêkirina têkçûna zû, hê berî ku UI ya sepanê çêbibe, rê bidin me ku em xetereyan kêm bikin û xeletiyan rast bikin.
  • Radestkirina mezin di demek kurt de gengaz e.

Ji bo ku em karibin li ser Testkirina API-ê bixebitin, em di sûkê de amûrên cihêreng ên mîna Postman, Mocha û Chai hene. Vana ji bo ceribandina API-yê encamên baş û karanîna bi bandor destnîşan kirine, lêbelê, ev bi giranî bandor li kodê dikin. Ji bo ku mirov bikaribe van bi kar bîne, divê mirov ji aliyê teknîkî ve saxlem be û bi zimanên bernamesaziyê zanibe.

Çarçoveya Karateyê vê pirsgirêkê ji amûrên nermalava xwe yên berê bi awayekî xweş çareser dike.

Çarçoveya Karate Çi ye

Karate? Ka em Karate biaxivin. Ma ew ji Japonya ye? Hûn çi difikirin? Dibe ku ew Bruce mezin beev Nivîsara Testa Bingehîn a Karateyê.

Senaryo:

Em ê bi vê URL-ê API-yek ceribandinê bikin.

Rê: api/users/2

Rêbaz: GET

Û divê em rast bikin , ka daxwazî ​​kodek serketî vedigerîne ( 200) an na.

Bi gotineke hêsan, em ê tenê nimûneyek API-ê biceribînin da ku bibînin ka ew bi serfirazî tê darve kirin an na.

Têbînî: Em mînakek API-ya ku ji bo ceribandinê heye digirin. Hûn dikarin her RIYÊ hilbijêrin an jî bikarin serî li API-ya xwe bidin.

Ji bo çavkaniyê li vir bikirtînin.

#5) Niha gava me ya din dê çêkirina pelê .feature .

Wekî ku di beşa pêşgotinê de hat behskirin, pela .feature ew milkê ku ji Xiyarê mîras hatiye wergirtin e. Di vê pelê de, em ê senaryoyên ceribandinê yên ku ji bo ceribandina API-ê hewce ne ku bêne darve kirin binivîsin.

  • Di projeya xwe de biçin Peldanka src/test/java .

  • Li ser wê rast bikirtînin û pelek nû ava bikin - userDetails.feature. Piştre bişkoka Biqedînê bikirtînin.

Niha hûn ê pelê jêrîn li binê peldankê bibînin src/test/java

Îkona rengîn a kesk dişibe .feature fi le di Xiyarê de ku me nû çêkiriye.

  • Dema ku pel hat afirandin, niha em ê senaryoyên ceribandinê yên ku dê di beşa jêrîn de werin nîqaş kirin binivîsin.

#6) Ji ber ku senaryo ûpelê vala . taybetmendî amade ye, naha em dest bi skrîpta xweya yekem bikin. Ka em dest bi kodkirinê bikin

Rêza Kodê ya jêrîn di bin pelê userDetails.feature ya ku me di Pêngava #5 de çêkiriye binivîsin:

 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

Werin em hewl bidin ku fêm bikin pêkhateyên ku di dosyaya jorîn de hatine nivîsandin:

  • Taybetî: Peyva sereke navê taybetmendiya ku em diceribînin diyar dike.
  • Paşgotin: Ev beşek vebijarkî ye ku wekî beşa pêş-pêwîst tê hesibandin. Ev dikare were bikar anîn da ku diyar bike ka hemî ji bo ceribandina API-ê çi hewce ye. HEADER, URL & Vebijarkên PARAM .
  • Senaryo: Her pelê taybetmendiya ku hûn ê bibînin dê bi kêmanî yek taybetmendiyek hebe (tevî ku ew dikare gelek senaryoyan bide) . Ew danasîna doza ceribandinê ye.
  • Gotin: Ew gav e ku divê berî ceribandinek din were meşandin. Ew kiryarek mecbûrî ye ku were kirin.
  • Dema: Ew şertê ku divê were bicîhanîn diyar dike ku gava gavê testê ya paşîn pêk were.
  • Piştre: Ew ji me re vedibêje ku heke şerta ku di Dema tê behs kirin de divê çi bibe.

Têbînî: Hemû peyvên sereke yên jorîn in. ji zimanê gêrîkan. Ev awayên standard ên nivîsandina skrîptên testê bi karanîna Xiyarê ne.

Û hin peyvên din ên ku di pelê taybetmendiyê de têne bikar anîn ev in:

  • 200: Ew koda statû/bersivê ya ku em in ebendewarî (ji bo navnîşa kodên statûyê li vir bikirtînin)
  • GET: Ew rêbaza API-ê ye mîna POST, PUT, hwd.

Em hêvî dikin ku ev ravekirin ji we re hêsan bû ku hûn fêm bikin. Niha hûn ê karibin bi rastî di dosyaya jorîn de çi hatiye nivîsandin re têkildar bin.

Niha divê em pelek TestRunner.java ava bikin

Wek ku li jor hatî diyar kirin beşê, Cucumber pelek Runner hewce dike ku pêdivî ye ku pela .feature ku senaryoyên ceribandinê dihewîne.

  • Here Peldanka src/test/java di projeya xwe de

  • Li ser wê rast bikirtînin û pelek Javaya Nû ava bikin: TestRunner.java
  • Dema ku pel hat afirandin, rêzikên kodê yên jêrîn têxin binê wê:
 import org.junit.runner.RunWith; import com.intuit.karate.junit4.Karate; @RunWith(Karate.class) public class TestRunner { }
  • Test Runner pelê ye ku dê nuha were darve kirin da ku pelê pêk bîne. senaryoya xwestî ya ku di bin Pêngava #5 de hatiye nivîsandin.

#7) Niha em bi her du pelan re amade ne TestRunner.Java û userDeatils.feature. Tenê peywira ku ji me re maye Rêvekirina skrîptê ye.

  • Here pelê TestRunner.java û wekî ku di wêneya jêrîn de tê xuyang kirin li ser pelê rast-klîk bike.

  • Hilbijêre Bixebitîne Wek -> Junit Test
  • Niha, gava ku were hilbijartin, hûn ê dest bi çavdêriya ku doza ceribandinê niha dest pê kiriye.
  • Li bendê bin ku skrîpta testê were bicîh kirin. Carekê hûn ê di pencereya xwe de tiştek mîna ku di wêneya jêrîn de tê xuyang kirin bibînin.

  • Di dawiyê de, em dikarin bibêjinku me bi serketî Pernivîsa testê ya bingehîn bikaranîna Çarçoveya Karateyê bi serkeftî çêkir.

#8) Dawî, Karate çarçowe jî ji bo înfaza ku hatiye kirin raporek HTML-ê dide.

  • Here Peldanka Armanc -> surefire-raporên- & gt; Li vir hûn ê rapora xweya HTML-ê ya ku hûn dikarin vekin bibînin.

** Em ê ji we re jî pêşniyar bikin ku hûn heman bi karanîna Chrome vekin. Browser ji bo dîtin û hestek çêtir.

  • Rapora HTML-ê ya li pey wê ji we re were xuyang kirin ku Senaryo & Testa ya ku ji bo senaryoya navborî hatîye darve kirin:

Encam

Di vê dersê de, me ceribandina API-ê, ceribandinên cihêreng nîqaş kir. Amûrên li sûkê hene, û çawa Çarçoveya Karate li gorî hevtayên xwe vebijarkek çêtir e.

Me nêzîkatiyek gav-bi-gav şopand da ku yekem skrîpta testa xweya bingehîn biafirînin. Me bi afirandina Projeya Maven a bingehîn di Eclipse IDE de dest pê kir da ku pelek .taybetmendiyê biafirîne, ku hemî senaryoya ceribandinê û pelek Runner dihewîne da ku doza ceribandinê ya ku di pelê .taybetmendiyê de hatî destnîşan kirin pêk bîne.

Di dawiya gavên pirjimar de, me karîbû rapora îcrayê ya encamên testê bibînin.

Em hêvîdar in, ev tutorial ji bo destpêkeran arîkar bû ku fêr bibin ka meriv çawa bi karanîna Çarçoveya Karateyê skrîpta testa xwe ya yekem ava dikin. û Testkirina API-ê pêk bînin. Vê gav-bi-gav bi berfirehînêzîkbûn rêyek ecêb e ku meriv ceribandinên cihêreng li ser API-yê bixebitîne û bimeşîne.

NEXT>>

Lee di dema xwe ya vala de ev yek pêşxistibû.

Her çend em dixwazin li ser kokên balkêş ên Karateyê bigerin jî, ji bo niha, em li ser Amûra Karateyê ya ku hatî pêşve xistin biaxivin. ji hêla Peter Thomas , yek ji wan amûrên mezin ên ku ji bo ceribandinên API-ê têne xilas kirin.

Çarçoveya Karate şêwaza nivîsandina bernameyê ya Cucumber ku nêzîkatiya BDD-ê dişopîne dişopîne. Hevoksazî ji hêla ne-bernamenûsan ve hêsan e. Û ev çarçove yekane amûra ceribandina API-ê ye ku Otomasyona API-ê û ceribandina performansê di nav amûrek yekta serbixwe de li hev kiriye.

Ew ji bikarhêneran re şiyana pêkanîna dozên ceribandinê di Parallel de peyda dike û JSON & amp; XML kontrol dike.

Bi vê agahiyê re, hin xalên sereke dikarin werin derxistin da ku amûra Karate bi hûrgulî bêtir fam bikin:

  • Karate di şûna wê de çarçoveyek ceribandina BDD-ê ye. ya TDD.
  • Ew ji bo ne-bernamenûsan hêsan hatiye çêkirin. Ev taybetmendî guhêrbarek lîstikê ye ji ber ku ew dihêle ku pir kesan bêtir bikar bîne û bigihîje bêyî paşnavê teknîkî an kapasîteya wan.
  • Ji bo nivîsandina testê pelê taybetmendiya Cucumber û zimanê Gherkins bikar tîne. têgihîştina pir hêsan e.

Hemû van taybetmendiyan wê dikin yek ji amûrên otomasyonê yên herî bikêrhatî ku îro hene.

Dîroka Çarçoveya Karateyê

Ji hêla ' Peter Thomas' di sala 2017 de, ev nermalavê armanc dike ku ceribandinê bikefonksiyonên ku bi hêsanî ji bo her kesî peyda dibin. Ew bi Java-yê hatî nivîsandin û piraniya mirovan li bendê bûn ku pelên wê jî bi heman zimanî bin, lê mixabin, ne wusa ye.

Belê, ew pelên Gherkins bikar tîne, ku ev yek ji encama têkiliya wê bi Çarçoveya xiyar. Nermalava otomasyonê dirêjkirina Xiyarê ye, ji ber vê yekê di xebata xwe de karanîna pelê Gherkins mîras digire. Cûdahiya mezin di navbera her duyan de ev e ku Karate di dema ceribandinê de Java-yê bikar nayîne, lê Xiyar dike.

Sedema ku ew ji ne-bernamenûsan re peyda dike ji ber ku hevoksaziya Gherkins super tê xwendin û berfireh e. Sedema vê yekê ye ku Karate ji bo ketina cîhana ceribandina API-ya otomatîkî ya herî guncan e û tê pêşniyar kirin.

Li jêr hin taybetmendiyên Çarçoveya Testkirina Karateyê hene:

  • Zimanê Gherkins-ê ku bi hêsanî tê famkirin bikar tîne.
  • Ji bo wê ne zanîna bernamesaziya teknîkî wekî Java-yê hewce dike.
  • Li ser bingeha standardên Xiyarê yên populer e.
  • Afirandina çarçoveyek hêsan e.
  • Testkirina paralel fonksiyona bingehîn e ku ji hêla Karate bixwe ve tê peyda kirin, ji ber vê yekê hewce ne ku em bi Maven, Gradle , hwd ve girêdayî bin.
  • UI ji bo çewtkirina Testê.
  • Gotina pelek taybetmendiyê ji pelek din.
  • Piştgiriyê dide Testa Ajokera Daneyên ku li hundurê hatî çêkirin, ji ber vê yekê ne hewce ye ku bi çarçoweyên derveyî ve girêdayî be.
  • Bêhna xwecihî ya çêkirîRaporên. Zêdeyî, ji bo Raporên UI çêtir û zelaltir dikare bi Cucumber re were yek kirin.
  • Piştgiriya hundurîn ji bo veguheztina veavakirinê li ser hawîrdorên ceribandinê yên cihêreng (QA, Stage, Prod, Pre-Prod) peyda dike.
  • Piştgiriya bêkêmasî ji bo entegrasyona CI/CD-ê ku dikare bikêr be.
  • Gelo guheztina bangên HTTP-ê yên cihêreng:
    • Piştgiriya Web Socket
    • Daxwaza SOAP
    • HTTP
    • Rêxistina cookie ya gerokê
    • HTTPS
    • Daneyên forma HTML
    • Daxwaza XML

Berawirdkirina Karate Vs Rest-Assured

Rest Assured : Ew pirtûkxaneyek-based Java ye ku karûbarên REST ceribandine. Ew ji bo nivîsandina rêzikên kodê zimanê Java bikar tîne. Ew di ceribandina gelek kategoriyên daxwazan de dibe alîkar, ku bêtir di verastkirina hevberdanên mantiqa karsaziyê yên cihêreng de encam dide.

Çarçoveya Karate : Amûrek bingehîn a Xiyar/Gerkîn, ji bo ceribandina SOAP û amp; Xizmetên REST.

Tabloya jêrîn çend cûdahiyên berbiçav di navbera Rest-Assured & amp; Çarçoveya Karate:

>
1 Ziman Têkeliya xiyar û gêrîkan bi kar tîne Ew zimanê Java-ê bikar tîne
2 Mezinahiya kodê Bi gelemperî, rêza kod kêmtir e, ji ber ku ew dişopîne avahiya mîna Xiyarê Rêza kodê pirtir e ji ber ku tê debikaranîna zimanê Java
3 Zana teknîkî pêwîst e Ne-bernamenûs dikarin bi hêsanî binivîsin koda Gherkins Ji bo nivîsandina koda Java-yê zanîna teknîkî hewce ye
4 Testkirina Dane-Driven Pêdivî ye ku ji bo piştgirîkirina heman TestNG an jî wekhev bikar bînin Tagên hundurîn dikarin ji bo piştgirîkirina ceribandina daneyê werin bikar anîn
5 Ma ew piştgiriya banga SOAP peyda dike Erê, ew peyda dike Ew tenê bi daxwazek REST ve girêdayî ye
6 Testkirina paralel Erê, ceribandina paralel bi hilberîna rapora paralel re bi hêsanî tê piştgirî kirin jî Ne pir zêde. Her çend mirovan hewl dane vê yekê bikin jî, rêjeya têkçûnê ji rêjeya serkeftinê bêtir e
7 Raportkirin Ew raporkirina hundurîn peyda dike, ji ber vê yekê ne hewce ye ku bi pêvekên derveyî ve girêdayî be. Ji bo UI çêtir em dikarin wê bi pêveka raporkirina Cucumber re jî yek bikin. Divê ku girêdayî Pêvekên Derve yên mîna Junit, TestNG bin
8 Piştgiriya CSV ji bo Daneyên derve Erê, ji Karate 0.9.0 Na, pêdivî ye ku koda Java an pirtûkxaneyê bikar bînin
9 Otomasyona UI ya Webê Erê, ji Karate 0.9.5 Xweseriya Web-UI gengaz e Na, ew nayê piştgirî kirin
10 Nimûne 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"));

Ji ber vê yekê, wekî ku ji hêla ciyawaziyên li jor, mirov dikare bêje ku Karate yek ji wan tiştên herî hêsan e ku her kes dikare bike.

Amûrên Pêwîstî Ji Bo Karkirina Bi Çarçoveya Karateyê re

Naha, ji ber ku me zanîna xwe ya bingehîn di derbarê Çarçoveya Karateyê li ser xalê, werin em li pêvajo û amûrên ku di sazkirina jîngeha Karate de hewce ne binihêrin.

#1) Eclipse

Eclipse Jîngehek Pêşkeftina Yekgirtî ye ku tê bikar anîn. di warê bernameya kompîturê de. Ew bi piranî ji bo Programming Java tê bikaranîn. Wekî ku berê hate behs kirin, Karate bi Java-yê hatî nivîsandin, ji ber vê yekê ew bêtir têgihîştî ye ku çima Eclipse ji bo nermalava ceribandina API-ê IDE-ya çûnê ye. Sedemek din jî ev e ku ew amûrek çavkaniyek vekirî ye, û ev sedemek pir xurt e ku meriv vê amûrê hilbijêrin.

Têbînî: Tewra em dikarin IntelliJ, Visual Studio, û cûdayên din bikar bînin. edîtorên ku di sûkê de hene.

#2) Maven

Ev amûrek xweseriya çêkirinê ye ku di serî de ji bo avakirina projeyên Java-yê tê bikar anîn. Ew yek awayê sazkirina jîngehek Karate û nivîsandina kodê ye. Ji bo sazkirina Eclipse bi pêdiviyên Maven re, hûn dikarin ji bo sazkirina Maven li vir bikirtînin.

Dema ku li Maven dixebitî, girêdayiyên Maven bikar bînin ku dê ji we re bibin alîkar ku hûn Çarçoveya Karate piştgirî bikin.

Li jêr girêdayiyên wê bi Maven re di pom.xml de werin bikar anîn.

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

Têbînî: Dibe ku guhertoyên herî dawîdi depoya Maven de peyda bibin.

#3) Gradle

Gradle alternatîfek Maven e û dikare di kapasîteya wekhev de were bikar anîn. Wekhevî û cudahiyên wan hene, lê dikarin di sazkirina jîngehek ji bo kodên me yên Karate de bi heman rengî werin bikar anîn.

Bikaranîna wê hêsantir e, maqûl e û tê pêşniyar kirin ku dema ku serîlêdana me hin hewcedariyên modularîzasyon û rêvebirinê hebin bi kar bînin. komek pêvekên. Koda sazkirinê ya Gradle dê tiştek wusa xuya bike,

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

Têbînî: Hûn dikarin MAVEN an GRADLE bikar bînin.

#4) Sazkirina Jîngeha Java di Pergala we de

Divê JDK û JRE jîngehê saz bikin da ku dest bi tîpên Çarçoveya Karate bikin.

Structure Of Karate Test Script

Skrîpta testa Karateyê ji bo xwedîkirina dirêjkirina ".feature" tê zanîn. Ev milk ji Xiyarê mîras maye. Rêxistinkirina pelan di peymana Java de jî bi heman rengî destûr e. Hûn azad in ku hûn pelên xwe li gorî peymanên pakêta Java-yê birêxistin bikin.

Lêbelê, rêwerzên Maven destnîşan dike ku hilanîna pelên ne-Java cuda bêne kirin. Ew di avahiyek src/test/çavkanî de têne kirin. Û pelên Java di bin src/main/java de têne parastin.

Lê li gorî afirînerên Çarçoveya Karate, ew bi tundî bawer dikin ku em pelên Java û ne-Java li kêleka hev digirin. hêl. Li gorî wan, lênihêrîna li ser wan pir hêsantir ePelên *.java û *.taybetmendî dema ku bi hev re têne hilanîn, li şûna ku li gorî strukturên standard Maven bişopînin.

Ev dikare bi hêsanî bi guheztina pom.xml-ya xwe wekî jêrîn (Ji bo Maven) pêk bîne:

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

Li jêr xêzkirina avahiya giştî ya Çarçoveya Karateyê ye:

Niha, ji ber ku ev Çarçoveya Karate bikar tîne pelê Runner, ku di Xiyar de jî hewce ye ku pelên taybetmendiyê bimeşîne, ji ber vê yekê piraniya nivîsandinê dê standardên Xiyarê bişopînin.

Lê, berevajî Xiyarê, gavan di Karate de pênaseyek zelal hewce nake û kîjan , di encamê de, nermbûn û hêsaniya operasyonan zêde dike. Ne hewce ye ku em zencîreya zêde ya ku divê em bi gelemperî lê zêde bikin dema ku em çarçoweya Xiyarê dişopînin lê zêde bikin.

Çîna "Runner" pir caran bi navê TestRunner.java ye.

Piştre pelê TestRunner.java dê forma:

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

Û behsa pelê .feature bike, ew hemî ceribandinê dihewîne. senaryoyên ku divê werin ceribandin da ku pê ewle bibin ku API li gorî hewcedariyên bendewar dixebite.

Pelek *.taybetmendiyek gelemperî mîna li jêr xuya dike:

 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

Afirandina Yekem Nivîsara Testa Karate ya Bingehîn

Ev beş dê ji we re bibe alîkar ku hûn dest bi afirandina Nivîsara Testa xweya yekem a ceribandinê bikin, ku dê ji we re bibe alîkar ku hûn API-yên di forma çarçoveyek Karate de biguherînin.

Berî ku em skrîptên testa Karate ya bingehîn binivîsin,Ji kerema xwe pêdiviyên jêrîn li ser makîneya xwe saz bikin:

  • Eclipse IDE
  • Maven. Rêya Mavenê ya guncaw saz bike.
  • JDK & amp; JRE. Riya guncaw destnîşan bike.

Werin em li nêzîkatiya gav-gav binihêrin:

#1) Biafirîne nû MAVEN Projeya di Edîtorê Eclipse de

  • Eclipse veke
  • Li ser Pelê bikirtînin. Projeya Nû Hilbijêre.

  • Projeya Maven Hilbijêre

  • Hilbijêre cihê Workspace.
  • Archetype hilbijêre (bi gelemperî em ji bo projeyên Maven sade " Maven-archetype-quickstart 1.1 " hildibijêrin).
  • Pêşkêş bike ID Koma & amp; Nasnameya Artifactê (me di mînaka xwe de nirxên jêrîn bikar aniye).
    • Nasnameya Komê : Karate
    • Nasnameya Artifact: KarateTestScriptsSample
  • Li ser Biqedînin bikirtînin da ku temam bikin setup.

#2) Dema ku hat afirandin, niha hûn ê bikaribin di pencereya Project Explorer de avahiyek jêrîn bibînin.

#3) Hemî Girêdayînên xwe têxin nav xwe.

Gava meya yekem, piştî sazkirinê em ê hemî girêdayên yên ku dê hewce bibin têxin nav xwe. ji bo îdamê. Em ê hemû etîketan di bin POM.xml de bihêlin (Bihesibînin ku hûn ji berê ve haya we ji karanîna POM.xml heye).

  • POM.xml vekin û koda jêrîn li binê etîketa girêdayîbûnê kopî bikin û tomar bikin. pelê.
  com.intuit.karate karate-apache 0.9.5 test   com.intuit.karate karate-junit4 0.9.5 test 

Ji bo çavkaniyê li vir bikirtînin.

#4) Ka em senaryoyê bihizirin, em ê çi tê de ceribandin

بۆ سەرەوە بچوو