Tutorial ieu mangrupa bubuka pikeun Tés API maké Karate Framework. Diajar ngeunaan struktur Naskah Tés Karate sareng léngkah-léngkah ngawangun naskah tés anu munggaran:

API mangrupikeun akronim anu nangtung pikeun Antarmuka Pemrograman Aplikasi. Dina istilah basajan, urang bisa nangtukeun salaku perantara software anu ngamungkinkeun komunikasi antara aplikasi.

Urang perlu nguji API sabab:

  • Hasil diterbitkeun leuwih gancang, ku kituna teu aya deui ngantosan ningali lamun API jalan.
  • Kalayan réspon anu leuwih gancang, panyebaran API ieu ogé jadi leuwih gancang, ku kituna ngamungkinkeun waktos turnaround gancang.
  • Deteksi gagalna awal, malah samemeh UI aplikasi dijieun, ngidinan urang pikeun ngurangan resiko jeung ngabenerkeun kasalahan.
  • Pangiriman skala badag mungkin dina periode pondok.

Pikeun tiasa ngerjakeun Uji API, kami gaduh sababaraha alat anu sayogi di pasar sapertos Tukang Pos, Mocha, sareng Chai. Ieu parantos nunjukkeun hasil anu saé sareng pamakean anu épéktip pikeun nguji API, tapi ieu dipangaruhan pisan ku kode. Pikeun bisa ngagunakeun ieu, urang kudu téknis alus tur akrab jeung basa program.

Kerangka Karate beautifully solves masalah ieu parabot software saméméhna.

Naon ari Kerangka Karate

Karate? Hayu urang ngobrol Karate. Éta nu ti Jepang? Naon anu anjeun pikirkeun? Bisa jadi éta Bruce hébatNaskah Tés Dasar Karate ieu.

Skenario:

Kami bakal nguji API nganggo URL ieu.

Jalur: api/users/2

Metoda: GET

Jeung urang kudu ngesahkeun , naha pamundut teh mulangkeun Kode Sukses ( 200) atanapi henteu.

Sacara basajan, urang badé nguji conto API pikeun ningali naha éta suksés dieksekusi atanapi henteu.

Catetan: Urang nyokot sampel API nu sadia pikeun nguji. Anjeun tiasa milih PATH mana waé atanapi tiasa ngarujuk kana API anjeun.

Klik di dieu pikeun sumberna.

#5) Ayeuna lengkah urang salajengna nyaéta nyieun .feature file.

Sakumaha anu dibahas dina bagian bubuka, .feature file nyaéta sipat anu diwariskeun ti Timun. Dina file ieu, urang bakal nyerat skenario tés anu kedah dieksekusi pikeun ngalaksanakeun Uji API.

  • Pindah ka Polder src/test/java dina proyék anjeun.

  • Klik katuhu di dinya tur jieun file anyar - userDetails.feature. Teras klik tombol Rengse.

Ayeuna anjeun bakal ningali file di handap ieu dina folder src/test/java

Ikon berwarna Héjo nyarupaan .feature fi le dina Timun nu karék dijieun.

  • Sanggeus file geus dijieun, ayeuna urang bakal nulis skenario tés urang nu bakal dibahas dina bagian handap.

#6) Kusabab urang boga skenario jeungkosong . fitur file siap, ayeuna hayu urang mimitian ku naskah munggaran urang. Hayu urang mimitian coding

Tulis baris kode di handap ieu handapeun file userDetails.feature nu urang dijieun dina Lengkah #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

Hayu urang coba ngartos komponén anu ditulis dina file di luhur:

  • Fitur: Keyword ngajelaskeun ngaran fitur anu kami uji.
  • Latar: Ieu bagian pilihan anu dianggap salaku bagian Pra-sarat. Ieu tiasa dianggo pikeun ngartikeun naon anu diperyogikeun pikeun nguji API. Ieu ngandung HEADER, URL & amp; PARAM pilihan.
  • Skenario: Unggal file fitur anu anjeun tingali bakal gaduh sahenteuna hiji fitur (sanaos tiasa masihan sababaraha skenario) . Ieu mangrupikeun katerangan ngeunaan kasus uji.
  • Dibikeun: Ieu mangrupikeun léngkah anu kedah dilaksanakeun sateuacan léngkah tés sanés dilakukeun. Éta mangrupikeun tindakan anu wajib dilaksanakeun.
  • Iraha: Ieu nangtukeun kaayaan anu kedah dicumponan pikeun ngalaksanakeun léngkah tés salajengna.
  • Teras: Éta nyarioskeun yén naon anu kedah kajantenan upami kaayaan anu disebatkeun dina Nalika sugema.

Catetan: Sadaya kecap konci anu disebatkeun di luhur nyaéta ti basa Gherkins. Ieu mangrupikeun cara standar nyerat naskah tés nganggo Timun.

Sareng sababaraha kecap anu dianggo dina file fitur nyaéta:

  • 200: Ieu mangrupikeun kode status/réspon anu kamiexpecting (Klik di dieu pikeun daptar kode status)
  • GET: Metode API sapertos POST, PUT, jsb.

Kami ngarepkeun katerangan ieu éta gampang pikeun anjeun ngartos. Ayeuna anjeun bakal tiasa ngahubungkeun naon anu ditulis dina file di luhur.

Ayeuna urang kedah ngadamel file TestRunner.java

Sapertos anu dijelaskeun di luhur. bagian, Timun butuh file Runner nu bakal diperlukeun pikeun ngaéksekusi file .feature nu ngandung skénario nguji.

  • Pindah ka Polder src/test/java dina proyék anjeun

  • Klik katuhu dina éta sarta jieun file Java Anyar: TestRunner.java
  • Sanggeus file tos dijieun, tempatkeun baris kode ieu di handapeunana:
 import org.junit.runner.RunWith; import com.intuit.karate.junit4.Karate; @RunWith(Karate.class) public class TestRunner { }
  • Test Runner nyaéta file anu ayeuna bakal dieksekusi pikeun ngalakukeun skenario nu dipikahoyong nu geus ditulis dina Lengkah #5.

#7) Ayeuna urang geus siap jeung duanana file TestRunner.Java jeung userDeatils.feature. Hiji-hijina tugas anu tinggaleun pikeun urang nyaéta Jalankeun skrip.

  • Pindah ka file TestRunner.java teras klik-katuhu kana file sapertos anu dipidangkeun dina gambar di handap ieu.

  • Pilih Run As -> Junit Test
  • Ayeuna, sanggeus dipilih, anjeun bakal mimiti niténan yén test case ayeuna geus dimimitian.
  • Tungguan skrip tés dieksekusi. Sakali rengse anjeun bakal niténan hal kawas ditémbongkeun dina gambar di handap dina jandela anjeun.

  • Ahirna, urang bisa nyebutkeunyén urang geus hasil nyieun dasar munggaran urang Test Script ngagunakeun Kerangka Karate.

#8) Panungtungan, Karate kerangka ogé méré presentasi laporan HTML pikeun palaksanaan nu geus dipigawé.

  • Buka Polder Target -> surefire-laporan-> Di dieu anjeun bakal ningali laporan HTML anjeun anu tiasa dibuka.

** Kami ogé nyarankeun anjeun muka éta nganggo Chrome. Pangotektak pikeun katingal jeung karasa nu leuwih hadé.

  • Laporan HTML nu nuturkeun bakal dipintonkeun ka anjeun nu ngagambarkeun Skenario & Tés anu parantos dilaksanakeun pikeun skenario anu disebatkeun:

Kacindekan

Dina tutorial ieu, urang parantos ngabahas uji API, tés anu béda. parabot nu sadia di pasar, jeung kumaha Karate Framework mangrupakeun pilihan hadé dibandingkeun counterparts na.

Kami nuturkeun pendekatan step-demi-step nyieun naskah tés dasar munggaran urang. Urang mimitian ku nyieun hiji dasar proyék Maven di Eclipse IDE nyieun file .feature, nu ngandung sakabéh skenario nguji sarta file Runner pikeun ngaéksekusi test case disebutkeun dina file .feature.

Dina ahir sababaraha léngkah, urang tiasa ningali laporan palaksanaan hasil tés.

Mudah-mudahan, tutorial ieu tiasa ngabantosan para pamula dina diajar kumaha carana ngawangun naskah tés munggaran nganggo Kerangka Karate. sareng ngalaksanakeun Uji API. Ieu rinci hambalan-demi-hambalanpendekatan mangrupikeun cara anu saé pikeun ngajalankeun sareng ngalaksanakeun sababaraha tés dina API.

NEXT>>

Lee parantos ngembangkeun ieu dina waktos luangna.

Sanaos urang hoyong terang kana akar Karate anu pikaresepeun, ayeuna, hayu urang ngobrol ngeunaan Alat Karate anu parantos dikembangkeun. ku Peter Thomas , salah sahiji parabot hébat nu datang ka nyalametkeun tina testers API.

Kerangka Karate nuturkeun gaya Timun nulis program nu nuturkeun pendekatan BDD. Sintaksisna gampang kahartos ku non-programer. Sareng kerangka ieu mangrupikeun hiji-hijina alat uji API anu ngagabungkeun Automation API sareng uji kinerja kana alat mandiri.

Ieu nyayogikeun kamampuan pikeun ngaéksekusi kasus uji dina Paralel sareng ngalaksanakeun JSON & amp; Pamariksaan XML.

Kalayan inpormasi ieu, titik-titik konci tangtu tiasa disimpulkeun pikeun langkung ngartos alat Karate sacara rinci:

  • Karate mangrupikeun kerangka uji BDD. tina TDD.
  • Dirancang pikeun gampang pikeun non-programer. Fitur ieu mangrupa kaulinan-changer sabab ngamungkinkeun pikeun leuwih pamakéan sarta aksés ku loba jalma paduli kasang tukang teknis maranéhanana atawa kapasitas.
  • Ngagunakeun file fitur Cucumber jeung basa Gherkins nulis tés nu gampang pisan kaharti.

Kabéh fitur ieu ngajadikeun éta salah sahiji alat otomatisasi nu paling nguntungkeun nu aya kiwari.

Sajarah Kerangka Karate

Dijieun ku ' Peter Thomas' dina 2017, parangkat lunak ieu tujuanana pikeun ngujifungsionalitas anu sayogi sayogi pikeun sadayana. Ditulis dina basa Jawa jeung sabagéan ageung jalma nyangka file na ogé dina basa anu sarua, tapi untungna, éta henteu masalahna. Rangka bonténg. Parangkat lunak otomasi mangrupikeun penyuluhan Timun, janten warisan panggunaan file Gherkins dina operasina. Beda gedé antara dua nyaéta Karate henteu ngagunakeun Java nalika nguji, tapi Timun ngagunakeun.

Ieu pisan sababna naha éta cocog pikeun non-programer sabab sintaksis Gherkins tiasa dibaca sareng komprehensif. Ieu mangrupikeun alesan Karate paling cocog sareng disarankeun pikeun asup kana dunya tés API otomatis.

Di handap ieu aya sababaraha fitur Kerangka Tés Karate:

  • Ngagunakeun basa Gherkins anu gampang kaharti.
  • Henteu peryogi pangaweruh program téknis sapertos Java.
  • Dumasar kana standar Timun populér.
  • Gampang nyieun kerangka.
  • Tes paralel teh fungsi inti nu disadiakeun ku Karate sorangan, ku kituna urang teu kudu gumantung kana Maven, Gradle , jsb.
  • UI pikeun debugging Test.
  • Nelepon file fitur tina file sejen.
  • Nyadiakeun pangrojong pikeun Data Driver Testing nu diwangun in-house, ku kituna teu perlu gumantung kana frameworks éksternal.
  • Istirahat Asli Diwangun-diLaporan. Tambih Deui, éta tiasa diintegrasikeun sareng Timun pikeun Laporan UI anu langkung saé sareng langkung jelas.
  • Nyadiakeun pangrojong internal pikeun ngalihkeun konfigurasi dina lingkungan tés anu béda (QA, Stage, Prod, Pre-Prod).
  • Dukungan mulus pikeun integrasi CI/CD nu bisa jadi mangpaat.
  • Sanggup nanganan rupa-rupa télépon HTTP:
    • Rojongan Socket Wéb
    • Paménta SOAP
    • HTTP
    • Pananganan cookie browser
    • HTTPS
    • data bentuk HTML
    • Paménta XML

Ngabandingkeun Karate Vs Rest-Assured

Rest Assured : Ieu mangrupikeun perpustakaan berbasis Java pikeun nguji jasa REST. Éta ngagunakeun basa Jawa pikeun nyerat baris kode. Eta mantuan dina nguji sababaraha kategori pamundut, nu salajengna hasil dina verifikasi kombinasi logika bisnis béda.

Kerangka Karate : Alat dumasar bonténg / Gherkins, dipaké pikeun nguji pikeun SOAP & amp; Ladenan REST.

Tabel di handap ieu ngawengku sababaraha béda anu leuwih menonjol antara Rest-Assured & amp; Kerangka Karate:

S.No Dasar Kerangka Karate REST-Assured
1 Basa Migunakeun kombinasi Bonténg jeung Gherkins Éta ngagunakeun Basa Jawa
2 Ukuran Kode Biasana, garis tina kodeu kurang, sabab nuturkeun struktur kawas Bonténg Jalur kode leuwih loba sabab ngawengkupamakéan basa Java
3 Kaweruh Téknis diperlukeun Non-Programmer bisa kalayan gampang nulis kode Gherkins Pengetahuan teknis diperlukeun pikeun nulis kode Java
4 Tes Didorong Data Peryogi ngagunakeun TestNG atanapi sarimbag pikeun ngadukung anu sami Tag in-house tiasa dianggo pikeun ngadukung uji data
5 Naha éta nyadiakeun pangrojong panggero SOAP Leres, éta nyayogikeun Éta ngan ukur aya hubunganana sareng pamundut REST
6 Uji Paralel Leres, uji paralel gampang dirojong ku ngahasilkeun laporan paralel teuing Teu sabagean gede. Sanaos jalma-jalma parantos nyobian ngalakukeun ieu, tingkat kagagalan langkung ageung tibatan tingkat kasuksésan
7 Ngalaporkeun Nyadiakeun laporan in-house, ku kituna henteu kedah gumantung kana plugins éksternal. Urang malah tiasa ngahijikeun sareng plugin ngalaporkeun Timun pikeun UI anu langkung saé. Kudu gumantung kana Plugin Eksternal sapertos Junit, TestNG
8 Rojongan CSV pikeun Data éksternal Leres, ti Karate 0.9.0 Henteu, kedah nganggo Kode Java atanapi perpustakaan
9 Web UI Automation Leres, tina Karate 0.9.5 Web-UI Automation tiasa dilaksanakeun Henteu, éta henteu didukung
10 Sampel 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"));

Ku kituna, sakumaha ditémbongkeun ku Bedana di luhur, bisa disebutkeun yen Karate mangrupa salah sahiji hal nu panggampangna nu bisa dilakukeun ku saha waé.

Alat-alat nu Diperyogikeun Pikeun Gawé Jeung Karate Framework

Ayeuna, saprak urang geus meunang pangaweruh dasar urang ngeunaan. Karate Framework on point, hayu urang tingali prosés jeung parabot diperlukeun dina nyetel lingkungan Karate.

#1) Eclipse

Eclipse mangrupa Lingkungan Pangwangunan Terpadu anu digunakeun. dina widang programming komputer. Hal ieu lolobana dipaké pikeun Java Programming. Sakumaha anu disebatkeun sateuacana, Karate ditulis dina Java, janten langkung raos naha Eclipse mangrupikeun IDE pikeun parangkat lunak uji API. Alesan anu sanésna nyaéta yén éta mangrupikeun alat open-source, sareng ieu mangrupikeun alesan anu kuat pikeun milih alat ieu.

Catetan: Kami malah tiasa nganggo IntelliJ, Visual Studio, sareng anu sanésna. éditor sadia di pasar.

#2) Maven

Ieu alat otomatisasi gedong dipaké utamana pikeun ngawangun proyék Java. Ieu mangrupikeun salah sahiji cara pikeun nyetél lingkungan Karate sareng nyerat kodeu. Pikeun nyetél Eclipse anjeun sareng syarat Maven, anjeun tiasa klik di dieu pikeun pamasangan Maven.

Nalika damel di Maven, paké dependensi Maven anu ngabantosan anjeun ngadukung Karate Framework.

Di handap ieu kagumantungan bakal dipaké ku Maven dina pom.xml.

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

Catetan: Versi panganyarna meureunsadia dina gudang Maven.

#3) Gradle

Gradle mangrupa alternatif pikeun Maven sarta bisa dipaké dina kapasitas sarua. Aranjeunna gaduh kamiripan sareng bédana tapi tiasa sami-sami dianggo dina nyetél lingkungan pikeun kode Karate urang.

Éta langkung gampang dianggo, fleksibel, sareng disarankeun pikeun dianggo nalika aplikasi urang ngagaduhan sababaraha syarat modularisasi sareng manajemén kalayan sakumpulan plug-in. Kodeu setelan Gradle bakal siga kieu,

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

Catetan: Anjeun bisa make MAVEN atawa GRADLE.

#4) Setélan Lingkungan Java dina Sistem anjeun

Peryogi nyetél lingkungan JDK sareng JRE pikeun ngamimitian nganggo skrip Karate Framework.

Struktur Naskah Tés Karate

Naskah tés Karate dipikanyaho pikeun gaduh ekstensi ".fitur". Sipat ieu diwariskeun ti Bonténg. Organisasi file dina konvénsi Java ogé diidinan. Anjeun bébas ngatur file anjeun dumasar kana konvénsi pakét Java.

Nanging, pituduh Maven maréntahkeun yén panyimpen file non-Jawa dilakukeun nyalira. Éta dilakukeun dina struktur src/test/resources . Sareng file Java disimpen dina src/main/java .

Tapi sakumaha anu nyiptakeun Karate Framework, aranjeunna yakin pisan yén urang nyimpen file Java sareng non-Java disarengan. sisi. Sapertos aranjeunna, éta langkung gampang pikeun milarian*.java jeung *.file fitur lamun disimpen babarengan, tinimbang nurutan struktur Maven standar.

Hal ieu bisa gampang dipigawé ku tweaking pom.xml anjeun kieu (Pikeun Maven):

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

Di handap ieu gurat badag struktur umum Karate Framework:

Ayeuna, saprak ieu kerangka Karate ngagunakeun file Runner, anu ogé diperlukeun dina Bonténg pikeun ngajalankeun file fitur, jadi lolobana tulisan bakal nuturkeun standar Bonténg.

Tapi, teu saperti Bonténg, léngkah-léngkahna teu merlukeun harti jelas dina Karate jeung nu mana. , kahareupna ningkatkeun kalenturan sareng betah operasi. Urang henteu kedah nambihan lem tambahan anu biasana urang kedah tambahkeun nalika urang nuturkeun kerangka Timun.

Kelas "Runner" biasana namina TestRunner.java.

Salajengna file TestRunner.java bakal bentukna:

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

Sareng ngobrol ngeunaan file .feature , éta ngandung sadaya tés. skenario anu perlu diuji pikeun mastikeun yén API jalan sakumaha per sarat ekspektasi.

A umum *.Fitur file kasampak kawas ditémbongkeun saperti di handap ieu:

 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

Nyiptakeun Naskah Tés Karate Dasar Kahiji

Bagian ieu baris mantuan anjeun ngamimitian nyieun Naskah Tés munggaran anjeun, anu bakal mantuan anjeun pikeun ngarobah API dina wangun kerangka Karate.

Saméméh nulis naskah tés dasar Karate,mangga install requisites handap dina mesin anjeun:

  • Eclipse IDE
  • Maven. Setel jalur Maven anu luyu.
  • JDK & amp; JRE. Setel jalur anu pas.

Hayu urang tingali léngkah-léngkahna:

#1) Jieun anyar MAVEN Proyék di Eclipse Editor

  • Buka Eclipse
  • Klik dina File. Pilih Proyék Anyar.

  • Pilih Proyék Maven

  • Pilih lokasi Workspace.
  • Pilih Archetype (biasana urang milih " Maven-archetype-quickstart 1.1 " pikeun proyék Maven basajan).
  • Nyadiakeun nu ID Grup & amp; ID Artifact (kami parantos nganggo nilai di handap ieu dina conto kami).
    • ID Grup : Karate
    • ID Artefak: KarateTestScriptsSample
  • Klik Rengse pikeun ngalengkepan setup.

#2) Sanggeus dijieun, ayeuna anjeun bakal bisa nempo struktur ieu dina jandela Project Explorer.

#3) Lebetkeun sadayana Depéndensi anjeun.

Léngkah munggaran urang, saatos setup kami bakal ngalebetkeun sadaya dependensi anu diperyogikeun. pikeun palaksanaan. Kami bakal nyimpen sadaya tag dina POM.xml (Anggap anjeun parantos terang kana panggunaan POM.xml).

  • Buka POM.xml teras salin kodeu di handap dina tag dependensi sareng simpen file.
  com.intuit.karate karate-apache 0.9.5 test   com.intuit.karate karate-junit4 0.9.5 test 

Klik di dieu pikeun sumberna.

#4) Hayu urang Brainstorm skenario, naon anu urang bade nguji

Gulung ka luhur