Ang tutorial na ito ay isang panimula sa API Testing gamit ang Karate Framework. Matutunan ang tungkol sa istruktura ng Karate Test Script at mga hakbang sa pagbuo ng unang test script:

Ang API ay isang acronym na kumakatawan sa Application Programming Interface. Sa simpleng mga termino, maaari naming tukuyin ito bilang isang software intermediary na nagbibigay-daan sa komunikasyon sa pagitan ng mga application.

Kailangan namin ng pagsubok sa API dahil:

  • Ang mga resulta ay nai-publish nang mas mabilis, kaya hindi na maghintay para makita kung gumagana nang maayos ang API.
  • Sa mas mabilis na pagtugon, nagiging mas mabilis din ang deployment ng mga API na ito, kaya nagbibigay-daan para sa mabilis na oras ng turnaround.
  • Maagang pagtuklas ng pagkabigo, bago pa man magawa ang UI ng app, hayaan kaming mabawasan ang mga panganib at itama ang mga pagkakamali.
  • Posible ang malakihang paghahatid sa mas maikling panahon.

Upang makapagtrabaho sa API Testing, mayroon kaming iba't ibang tool na available sa market tulad ng Postman, Mocha, at Chai. Nagpakita ang mga ito ng magagandang resulta at epektibong paggamit para sa pagsubok ng mga API, gayunpaman, ang mga ito ay lubos na naiimpluwensyahan ng code. Para magamit ang mga ito, dapat ay matalino ang isa sa teknikal at pamilyar sa mga programming language.

Magandang nilulutas ng Karate Framework ang isyung ito ng mga naunang software tool nito.

Ano ang Karate Framework

Karate? Pag-usapan natin ang Karate. Yung galing Japan ba? Ano sa tingin mo? Maaaring iyon ang dakilang Bruceitong Karate Basic Test Script.

Scenario:

Susubukan namin ang isang API gamit ang URL na ito.

Path: api/users/2

Paraan: GET

At kailangan nating i-validate , kung ang kahilingan ay nagbabalik ng Tagumpay na code ( 200) o hindi.

Sa madaling salita, susubukan lang namin ang isang sample na API upang makita kung matagumpay itong naisakatuparan o hindi.

Tandaan: Kumuha kami ng sample na API na available para sa pagsubok. Maaari kang pumili ng anumang PATH o maaaring sumangguni sa iyong API.

Mag-click dito para sa pinagmulan.

#5) Ngayon ang susunod nating hakbang ay gumawa ng .feature file.

Tulad ng tinalakay sa seksyong panimula, ang .feature file ay ang property na minana mula sa Cucumber. Sa file na ito, isusulat namin ang mga senaryo ng pagsubok na kailangang isagawa para sa pagsasagawa ng API Testing.

  • Pumunta sa Folder src/test/java sa iyong proyekto.

  • I-right click dito at lumikha ng bagong file – userDetails.feature. Pagkatapos ay mag-click sa pindutang Tapusin.

Ngayon ay makikita mo ang sumusunod na file sa ilalim ng folder na src/test/java

Ang Green colored icon ay kahawig ng .feature fi le sa Cucumber na kakalikha lang namin.

  • Kapag nagawa na ang file, ngayon ay isusulat namin ang aming mga pagsubok na senaryo na tatalakayin sa susunod na seksyon.

#6) Dahil mayroon kaming senaryo athanda na ang blankong . feature file, ngayon magsimula tayo sa una nating script. Simulan natin ang coding

Isulat ang sumusunod na linya ng Code sa ilalim ng userDetails.feature file na ginawa namin sa Hakbang #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

Subukan nating maunawaan ang mga bahagi na nakasulat sa file sa itaas:

  • Tampok: Ipinapaliwanag ng keyword ang pangalan ng feature na sinusubok namin.
  • Background: Ito ay isang opsyonal na seksyon na itinuturing bilang isang Pre-requisite na seksyon. Magagamit ito para tukuyin kung ano ang kailangan para masubukan ang API. Naglalaman ito ng HEADER, URL & PARAM na mga opsyon.
  • Scenario: Ang bawat feature file na makikita mo ay magkakaroon ng kahit isang feature (bagama't maaari itong magbigay ng maramihang scenario) . Ito ay ang paglalarawan ng test case.
  • Ibinigay: Ito ang hakbang na kailangang isagawa bago gawin ang anumang iba pang hakbang sa pagsubok. Ito ay isang ipinag-uutos na pagkilos na dapat gawin.
  • Kailan: Tinutukoy nito ang kundisyon na dapat matugunan upang maisagawa ang susunod na hakbang sa pagsubok.
  • Pagkatapos: Sinasabi nito sa amin kung ano ang dapat mangyari kung sakaling ang kundisyong binanggit sa Kapag ay nasiyahan.

Tandaan: Lahat ng nabanggit na keyword ay mula sa wikang Gherkins. Ito ang karaniwang paraan ng pagsulat ng mga test script gamit ang Cucumber.

At ang ilan pang salita na ginamit sa feature file ay:

  • 200: Ito ang status/response code kung sino tayoinaasahan (Mag-click dito para sa listahan ng mga status code)
  • GET: Ito ay ang API na paraan tulad ng POST, PUT, atbp.

Umaasa kami sa paliwanag na ito naging madali para sa iyo na maunawaan. Ngayon ay maiuugnay mo na kung ano ang eksaktong nakasulat sa file sa itaas.

Ngayon kailangan nating gumawa ng TestRunner.java file

Gaya ng ipinaliwanag sa itaas seksyon, kailangan ng Cucumber ng Runner file na kakailanganin upang maisagawa ang .feature file na naglalaman ng mga sitwasyon sa pagsubok.

  • Pumunta sa Folder src/test/java sa iyong proyekto

  • I-right Click dito at lumikha ng Bagong Java file: TestRunner.java
  • Kapag nagawa na ang file, ilagay ang mga sumusunod na linya ng code sa ilalim nito:
 import org.junit.runner.RunWith; import com.intuit.karate.junit4.Karate; @RunWith(Karate.class) public class TestRunner { }
  • Ang Test Runner ay ang file na isasagawa na ngayon upang maisagawa ang ninanais na senaryo na isinulat sa ilalim ng Hakbang #5.

#7) Ngayon handa na kami sa parehong mga file TestRunner.Java at userDeatils.feature. Ang tanging gawain na natitira para sa amin ay Patakbuhin ang ang script.

  • Pumunta sa TestRunner.java file at Mag-right-click sa file tulad ng ipinapakita sa larawan sa ibaba.

  • Piliin ang Run As -> Junit Test
  • Ngayon, kapag napili na, sisimulan mong maobserbahan na nagsimula na ang test case.
  • Hintaying ma-execute ang test script. Kapag tapos na, mapapansin mo ang isang bagay tulad ng ipinapakita sa larawan sa ibaba sa iyong window.

  • Sa wakas, masasabi natingna matagumpay naming nagawa ang aming pinakaunang pangunahing Test Script gamit ang Karate Framework.

#8) Huli, ang Karate Ang framework ay nagbibigay din ng HTML report presentation para sa execution na isinagawa.

  • Pumunta sa Target Folder -> surefire-reports-> Dito makikita mo ang iyong HTML na ulat na maaari mong buksan.

** Iminumungkahi din namin sa iyo na buksan ang parehong gamit ang Chrome Browser para sa mas magandang hitsura at pakiramdam.

  • Ang pagsunod sa Ulat sa HTML ay ipapakita sa iyo na naglalarawan ng Mga Sitwasyon & Pagsubok na naisakatuparan para sa nabanggit na senaryo:

Konklusyon

Sa tutorial na ito, tinalakay namin ang pagsubok sa API, iba't ibang pagsubok mga tool na magagamit sa merkado, at kung paano ang Karate Framework ay isang mas mahusay na opsyon kumpara sa mga katapat nito.

Sinundan namin ang isang hakbang-hakbang na diskarte upang lumikha ng aming unang pangunahing script ng pagsubok. Nagsimula kami sa paggawa ng pangunahing Maven project sa Eclipse IDE para gumawa ng .feature file, na naglalaman ng lahat ng testing scenario at Runner file para isagawa ang test case na binanggit sa .feature file.

Sa pagtatapos ng maraming hakbang, makikita namin ang ulat ng pagpapatupad ng mga resulta ng pagsubok.

Umaasa kami, nakatulong ang tutorial na ito para sa mga nagsisimula sa pag-aaral kung paano bumuo ng kanilang unang script ng pagsubok gamit ang Karate Framework at magsagawa ng API Testing. Ang detalyadong hakbang-hakbang na itoAng diskarte ay isang magandang paraan upang magpatakbo at magsagawa ng iba't ibang pagsubok sa API.

NEXT>>

Binuo ito ni Lee sa kanyang libreng oras.

Bagaman gusto naming alamin ang mga kagiliw-giliw na pinagmulan ng Karate, sa ngayon, pag-usapan natin ang Karate tool na binuo ni Peter Thomas , isa sa mga mahuhusay na tool na sumagip sa mga API tester.

Karate framework ay sumusunod sa Cucumber style ng pagsusulat ng programa na sumusunod sa BDD approach. Ang syntax ay madaling maunawaan ng mga hindi programmer. At ang framework na ito ay ang tanging tool sa pagsubok ng API na pinagsama ang API Automation at pagsubok sa pagganap sa isang solong tool.

Binibigyan nito ang mga user ng kakayahang isagawa ang mga test case sa Parallel at isagawa ang JSON & Pagsusuri ng XML.

Gamit ang impormasyong ito, maaaring mahihinuha ang ilang mahahalagang punto upang higit na maunawaan ang Karate tool nang detalyado:

  • Ang Karate ay isang BDD testing framework sa halip ng isang TDD.
  • Ito ay idinisenyo upang maging madali para sa mga hindi programmer. Ang feature na ito ay isang game-changer dahil nagbibigay-daan ito para sa higit pang paggamit at pag-access ng maraming tao anuman ang kanilang teknikal na background o kapasidad.
  • Ginagamit nito ang file ng tampok na Cucumber at ang wikang Gherkins upang isulat ang pagsubok na napakadaling unawain.

Lahat ng mga feature na ito ay ginagawa itong isa sa pinakakanais-nais na mga tool sa automation na magagamit ngayon.

Kasaysayan Ng Karate Framework

Nilikha ni ' Peter Thomas' sa 2017, ang software na ito ay naglalayong gumawa ng pagsubokmga pag-andar na madaling magagamit para sa lahat. Isinulat ito sa Java at inaasahan ng karamihan sa mga tao na ang mga file nito ay nasa parehong wika, gayunpaman, sa kabutihang palad, hindi iyon ang kaso.

Sa halip, gumagamit ito ng mga Gherkins file, na resulta ng kaugnayan nito sa Balangkas ng pipino. Ang software ng automation ay isang extension ng Cucumber, kaya namamana ang paggamit ng Gherkins file sa operasyon nito. Ang malaking pagkakaiba sa pagitan ng dalawa ay ang Karate ay hindi gumagamit ng Java habang sinusubukan, ngunit ang Cucumber ay gumagamit.

Ito ang mismong dahilan kung bakit ito tumutugon sa mga hindi programmer dahil ang Gherkins syntax ay sobrang nababasa at komprehensibo. Ito ang dahilan kung bakit pinakaangkop at inirerekomenda ang Karate para sa pagpasok sa mundo ng automated API testing.

Ang mga sumusunod ay ilang feature ng Karate Testing Framework:

  • Gumagamit ng madaling maunawaang wika ng Gherkins.
  • Hindi ito nangangailangan ng kaalaman sa teknikal na programming tulad ng Java.
  • Ito ay nakabatay sa mga sikat na pamantayan ng Cucumber.
  • Madaling gumawa ng framework.
  • Ang parallel testing ay ang pangunahing functionality na ibinibigay ng Karate mismo, kaya hindi tayo dapat umasa sa Maven, Gradle , atbp.
  • UI para sa pag-debug ng Pagsubok.
  • Pagtawag ng feature file mula sa isa pang file.
  • Nagbibigay ng mga suporta para sa Data Driver Testing na binuo sa loob ng bahay, kaya hindi na kailangang umasa sa mga panlabas na framework.
  • Built-in Native RestMga ulat. Dagdag pa, maaari itong isama sa Cucumber para sa mas mahusay na Mga Ulat sa UI at higit na kalinawan.
  • Nagbibigay ng in-house na suporta para sa paglipat ng configuration sa iba't ibang testing environment (QA, Stage, Prod, Pre-Prod).
  • Seamless na suporta para sa CI/CD integration na maaaring maging kapaki-pakinabang.
  • May kakayahang pangasiwaan ang iba't ibang HTTP na tawag:
    • Web Socket support
    • SOAP request
    • HTTP
    • Paghawak ng cookie ng browser
    • HTTPS
    • Data ng HTML-form
    • Paghiling sa XML

Paghahambing ng Karate Vs Rest-Assured

Rest Assured : Ito ay isang library na nakabatay sa Java upang subukan ang mga serbisyo ng REST. Gumagamit ito ng wikang Java para sa pagsulat ng mga linya ng code. Nakakatulong ito sa pagsubok ng maraming kategorya ng kahilingan, na higit na nagreresulta sa pag-verify ng iba't ibang kumbinasyon ng lohika ng negosyo.

Karate Framework : Isang tool na batay sa Cucumber/Gherkins, na ginagamit para sa pagsubok para sa SOAP & Mga serbisyo ng REST.

Ang sumusunod na talahanayan ay naglilista ng ilan pang kitang-kitang pagkakaiba sa pagitan ng Rest-Assured & Karate Framework:

S.No Basis Karate Framework REST-Assured
1 Wika Gumagamit ito ng kumbinasyon ng Cucumber at Gherkins Gumagamit ito ng Java Language
2 Laki ng Code Karaniwan, ang linya ng mas mababa ang code, dahil sumusunod ito sa istrakturang tulad ng Cucumber Mas marami ang linya ng code dahil kinabibilangan ito ngpaggamit ng wikang Java
3 Kinakailangan ng Teknikal na Kaalaman Ang mga hindi Programmer ay madaling magsulat ang Gherkins code Kinakailangan ang teknikal na kaalaman sa pagsulat ng Java code
4 Data-Driven Testing Kailangang gamitin ang TestNG o katumbas para suportahan ang pareho Maaaring gamitin ang mga in-house na tag para suportahan ang pagsubok ng data
5 Nagbibigay ba ito ng suporta sa SOAP call Oo, nagbibigay ito Ito ay nauugnay lamang sa isang REST na kahilingan
6 Parallel Testing Oo, ang parallel testing ay madaling sinusuportahan sa parallel na pagbuo ng ulat masyadong Hindi sa isang malaking lawak. Kahit na sinubukan ng mga tao na gawin ito, ang rate ng pagkabigo ay higit pa sa rate ng tagumpay
7 Pag-uulat Nagbibigay ito ng in-house na pag-uulat, kaya hindi na kailangang umasa sa mga panlabas na plugin. Maaari pa nga namin itong isama sa plugin ng pag-uulat ng Cucumber para sa mas magandang UI. Kailangang umasa sa Mga External na Plugin tulad ng Junit, TestNG
8 Suporta sa CSV para sa panlabas na Data Oo, mula sa Karate 0.9.0 Hindi, kailangang gumamit ng Java Code o library
9 Web UI Automation Oo, mula sa Karate 0.9.5 Web-UI Automation ay posible Hindi, hindi ito suportado
10 Sample 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"));

Kaya, gaya ng ipinakita ng mga pagkakaiba sa itaas, ligtas na sabihin na ang Karate ay isa sa pinakamadaling bagay na magagawa ng sinuman.

Mga Tool na Kinakailangan Para sa Paggawa Sa Karate Framework

Ngayon, dahil nakuha na natin ang ating pangunahing kaalaman tungkol sa Karate Framework on point, tingnan natin ang mga proseso at tool na kinakailangan sa pag-set up ng Karate environment.

#1) Eclipse

Ang Eclipse ay isang Integrated Development Environment na ginamit sa larangan ng computer programming. Ito ay kadalasang ginagamit para sa Java Programming. Tulad ng nabanggit kanina, ang Karate ay nakasulat sa Java, kaya mas may katuturan kung bakit ang Eclipse ang go-to IDE para sa API test software. Ang isa pang dahilan ay isa itong open-source na tool, at isa itong medyo matibay na dahilan para piliin ang tool na ito.

Tandaan: Maaari pa naming gamitin ang IntelliJ, Visual Studio, at iba pang iba mga editor na available sa market.

#2) Maven

Ito ay isang build automation tool na pangunahing ginagamit para sa pagbuo ng mga proyekto ng Java. Ito ay isang paraan ng pag-set up ng isang Karate environment at pagsulat ng code. Upang i-set up ang iyong Eclipse na may mga kinakailangan sa Maven, maaari kang mag-click dito para sa pag-install ng Maven.

Habang nagtatrabaho sa Maven, gumamit ng mga dependency ng Maven na makakatulong sa iyong suportahan ang Karate Framework.

Ang sumusunod Gagamitin ang mga dependency kasama ang Maven sa pom.xml.

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

Tandaan: Ang mga pinakabagong bersyon ay maaaringmaging available sa repositoryo ng Maven.

#3) Gradle

Ang Gradle ay isang alternatibo sa Maven at maaaring gamitin sa pantay na kapasidad. May mga pagkakatulad at pagkakaiba ang mga ito ngunit maaaring pantay na magamit sa pagse-set up ng isang kapaligiran para sa aming mga Karate code.

Mas madaling gamitin, flexible, at inirerekomendang gamitin kapag ang aming application ay may ilang kinakailangan sa modularization at pamamahala na may isang grupo ng mga plug-in. Magiging ganito ang hitsura ng Gradle setup code,

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

Tandaan: Maaari mong gamitin ang MAVEN o GRADLE.

#4) Pag-setup ng Java Environment sa iyong System

Kailangang i-setup ang JDK at JRE environment para makapagsimula sa mga script ng Karate Framework.

Structure Of Karate Test Script

Ang isang Karate test script ay kilala sa pagkakaroon ng extension na ".feature". Ang ari-arian na ito ay minana mula sa Cucumber. Ang organisasyon ng mga file sa Java convention ay pantay na pinahihintulutan. Malaya kang ayusin ang iyong mga file ayon sa mga Java package convention.

Gayunpaman, ang mga alituntunin ng Maven ay nagtuturo na ang pag-iimbak ng mga hindi Java file ay gagawin nang hiwalay. Ginagawa ang mga ito sa isang src/test/resources na istraktura. At ang mga Java file ay pinananatili sa ilalim ng src/main/java .

Ngunit ayon sa mga tagalikha ng Karate Framework, lubos silang naniniwala na pinananatili namin ang parehong Java at non-Java file sa tabi. gilid. Alinsunod sa kanila, mas madaling tingnan ang*.java at *.feature file kapag pinagsama-sama ang mga ito, sa halip na sundin ang karaniwang istraktura ng Maven.

Madali itong magawa sa pamamagitan ng pag-tweak ng iyong pom.xml tulad ng sumusunod (Para sa Maven):

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

Ang sumusunod ay ang balangkas ng pangkalahatang istraktura ng Karate Framework:

Ngayon, dahil ang Karate Framework na ito ay gumagamit ng ang Runner file, na kailangan din sa Cucumber upang patakbuhin ang mga feature na file, kaya karamihan sa pagsulat ay susunod sa mga pamantayan ng Cucumber.

Ngunit, hindi tulad ng Cucumber, ang mga hakbang ay hindi nangangailangan ng malinaw na kahulugan sa Karate at kung alin , sa turn, mapahusay ang flexibility at kadalian ng mga operasyon. Hindi namin kailangang magdagdag ng dagdag na pandikit na karaniwang kailangan naming idagdag kapag sinusunod namin ang balangkas ng Cucumber.

Ang klase ng “Runner” ay kadalasang pinangalanang TestRunner.java.

Pagkatapos, ang TestRunner.java file ay magkakaroon ng anyo ng:

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

At pinag-uusapan ang .feature file, naglalaman ito ng lahat ng pagsubok mga sitwasyong kailangang subukan upang matiyak na gumagana ang API ayon sa inaasahang mga kinakailangan.

Ang isang pangkalahatang *.feature file ay mukhang tulad ng ipinapakita sa ibaba:

 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

Paggawa ng Unang Pangunahing Karate Test Script

Tutulungan ka ng seksyong ito na makapagsimula sa paglikha ng iyong pinakaunang Test Script, na makakatulong para sa iyo na mag-convert ng mga API sa anyo ng isang Karate framework.

Bago namin isulat ang mga pangunahing script ng Karate test,mangyaring i-install ang sumusunod na mga kinakailangan sa iyong makina:

  • Eclipse IDE
  • Maven. Itakda ang naaangkop na Maven path.
  • JDK & JRE. Itakda ang naaangkop na landas.

Tingnan natin ang step-by-step na diskarte:

#1) Lumikha ng bagong MAVEN Project sa Eclipse Editor

  • Open Eclipse
  • Mag-click sa File. Piliin ang Bagong Proyekto.

  • Piliin ang Maven Project

  • Pumili ang lokasyon ng Workspace.
  • Piliin ang Archetype (karaniwan ay pinipili namin ang " Maven-archetype-quickstart 1.1 " para sa mga simpleng proyekto ng Maven).
  • Magbigay ang Group ID & ang Artifact ID (ginamit namin ang mga sumusunod na halaga sa aming halimbawa).
    • Group ID : Karate
    • Artifact ID: KarateTestScriptsSample
  • I-click ang Finish para kumpletuhin ang setup.

#2) Kapag nagawa na, ngayon ay makikita mo na ang sumusunod na istraktura sa window ng Project Explorer.

#3) Isama ang lahat ng iyong Dependencies.

Ang aming pinakaunang hakbang, pagkatapos ng setup ay isama namin ang lahat ng dependencies na kakailanganin para sa execution. Itatago namin ang lahat ng tag sa ilalim ng POM.xml (Ipagpalagay na alam mo na ang paggamit ng POM.xml).

  • Buksan ang POM.xml at kopyahin ang code sa ibaba sa ilalim ng tag ng dependency at i-save ang file.
  com.intuit.karate karate-apache 0.9.5 test   com.intuit.karate karate-junit4 0.9.5 test 

Mag-click dito para sa pinagmulan.

#4) Mag-brainstorm tayo sa senaryo, ano ang susuriin natin

Mag-scroll pataas