Tutorial ini ialah pengenalan kepada Pengujian API menggunakan Rangka Kerja Karate. Ketahui tentang struktur Skrip Ujian Karate dan langkah untuk membina skrip ujian pertama:

API ialah akronim yang bermaksud Antara Muka Pengaturcaraan Aplikasi. Secara ringkas, kami boleh mentakrifkannya sebagai perantara perisian yang membenarkan komunikasi antara aplikasi.

Kami memerlukan ujian API kerana:

  • Hasil diterbitkan lebih cepat, maka tidak perlu menunggu lagi untuk melihat sama ada API berfungsi dengan baik.
  • Dengan tindak balas yang lebih pantas, penggunaan API ini juga menjadi lebih pantas, justeru membolehkan masa pemulihan yang cepat.
  • Pengesanan kegagalan awal, walaupun sebelum UI apl dibuat, benarkan kami mengurangkan risiko dan membetulkan kesilapan.
  • Penghantaran berskala besar mungkin dalam tempoh yang lebih singkat.

Untuk dapat mengusahakan Ujian API, kami mempunyai pelbagai alatan yang tersedia di pasaran seperti Posmen, Mocha dan Chai. Ini telah menunjukkan hasil yang baik dan penggunaan yang berkesan untuk menguji API, namun, ini sangat dipengaruhi kod. Untuk dapat menggunakan ini, seseorang itu mestilah mahir dari segi teknikal dan biasa dengan bahasa pengaturcaraan.

Rangka Kerja Karate dengan cantik menyelesaikan isu alat perisian sebelumnya ini.

Apakah Rangka Kerja Karate

Karate? Mari bercakap Karate. Adakah ia dari Jepun? Apa pendapat kamu? Mungkin itu Bruce yang hebatSkrip Ujian Asas Karate ini.

Senario:

Kami akan menguji API dengan URL ini.

Laluan: api/users/2

Kaedah: DAPATKAN

Dan kami perlu mengesahkan , sama ada permintaan itu mengembalikan Kod kejayaan ( 200) atau tidak.

Secara ringkasnya, kami hanya akan menguji sampel API untuk melihat sama ada ia berjaya dilaksanakan atau tidak.

Nota: Kami mengambil sampel API yang tersedia untuk ujian. Anda boleh memilih mana-mana PATH atau boleh merujuk kepada API anda.

Klik di sini untuk mendapatkan sumber.

#5) Sekarang langkah seterusnya kami ialah mencipta Fail .feature .

Seperti yang dibincangkan dalam bahagian pengenalan, fail .feature ialah sifat yang telah diwarisi daripada Cucumber. Dalam fail ini, kami akan menulis senario ujian yang perlu dilaksanakan untuk melaksanakan Ujian API.

  • Pergi ke Folder src/test/java dalam projek anda.

  • Klik kanan padanya dan buat fail baharu – userDetails.feature. Kemudian klik pada butang Selesai.

Kini anda akan melihat fail berikut di bawah folder src/test/java

Ikon berwarna hijau menyerupai .feature fi le dalam Timun yang baru kami buat.

  • Apabila fail telah dibuat, kini kami akan menulis senario ujian kami yang akan dibincangkan dalam bahagian berikut.

#6) Memandangkan kita mempunyai senario danfail . ciri kosong sudah sedia, sekarang mari mulakan dengan skrip pertama kami. Mari kita mulakan pengekodan

Tulis baris Kod berikut di bawah fail userDetails.feature yang kami buat dalam Langkah #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

Mari kami cuba memahami komponen yang ditulis dalam fail di atas:

  • Ciri: Kata kunci menerangkan nama ciri yang kami uji.
  • Latar belakang: Ini ialah bahagian pilihan yang dianggap sebagai bahagian Pra-syarat. Ini boleh digunakan untuk menentukan semua yang diperlukan untuk menguji API. Ia mengandungi HEADER, URL & Pilihan PARAM .
  • Senario: Setiap fail ciri yang anda akan lihat akan mempunyai sekurang-kurangnya satu ciri (walaupun ia boleh memberikan berbilang senario) . Ia ialah perihalan kes ujian.
  • Diberikan: Ia ialah langkah yang perlu dilaksanakan sebelum sebarang langkah ujian lain dilakukan. Ia adalah tindakan wajib yang perlu dilakukan.
  • Apabila: Ia menentukan syarat yang perlu dipenuhi untuk melaksanakan langkah ujian seterusnya.
  • Kemudian: Ia memberitahu kita bahawa perkara yang perlu berlaku sekiranya keadaan yang disebut dalam Apabila dipuaskan.

Nota: Semua kata kunci yang disebut di atas adalah daripada bahasa Gherkins. Ini ialah cara standard untuk menulis skrip ujian menggunakan Timun.

Dan beberapa perkataan lagi yang digunakan dalam fail ciri ialah:

  • 200: Ia adalah status/kod respons yang kami adamengharapkan (Klik di sini untuk senarai kod status)
  • DAPATKAN: Ia adalah kaedah API seperti POST, PUT, dll.

Kami berharap penjelasan ini adalah mudah untuk anda fahami. Kini anda akan dapat mengaitkan dengan apa yang sebenarnya ditulis dalam fail di atas.

Sekarang kita perlu mencipta fail TestRunner.java

Seperti yang dijelaskan di atas bahagian, Cucumber memerlukan fail Runner yang diperlukan untuk melaksanakan fail .feature yang mengandungi senario ujian.

  • Pergi ke Folder src/test/java dalam projek anda

  • Klik kanan padanya dan buat fail Java Baharu: TestRunner.java
  • Apabila fail telah dibuat, letak baris kod berikut di bawahnya:
 import org.junit.runner.RunWith; import com.intuit.karate.junit4.Karate; @RunWith(Karate.class) public class TestRunner { }
  • Test Runner ialah fail yang kini akan dilaksanakan untuk melaksanakan senario yang dikehendaki yang telah ditulis di bawah Langkah #5.

#7) Kini kami sudah bersedia dengan kedua-dua fail TestRunner.Java dan userDeatils.feature. Satu-satunya tugas yang tinggal untuk kita ialah Jalankan skrip.

  • Pergi ke fail TestRunner.java dan Klik kanan pada fail seperti yang ditunjukkan dalam imej di bawah.

  • Pilih Jalankan Sebagai -> Ujian Junit
  • Sekarang, setelah dipilih, anda akan mula memerhatikan bahawa kes ujian kini telah bermula.
  • Tunggu skrip ujian untuk dilaksanakan. Setelah selesai, anda akan melihat sesuatu seperti yang ditunjukkan dalam imej di bawah dalam tetingkap anda.

  • Akhir sekali, kita boleh katakanbahawa kami telah berjaya mencipta asas pertama kami Skrip Ujian menggunakan Rangka Kerja Karate.

#8) Terakhir, Karate rangka kerja juga memberikan pembentangan laporan HTML untuk pelaksanaan yang telah dilakukan.

  • Pergi ke Folder Sasaran -> laporan-pasti-> Di sini anda akan melihat laporan HTML anda yang boleh anda buka.

** Kami juga akan mencadangkan anda membuka perkara yang sama menggunakan Chrome Penyemak imbas untuk rupa dan rasa yang lebih baik.

  • Mengikuti Laporan HTML akan ditunjukkan kepada anda yang menggambarkan Senario & Ujian yang telah dilaksanakan untuk senario yang disebutkan:

Kesimpulan

Dalam tutorial ini, kami telah membincangkan ujian API, ujian berbeza alatan yang tersedia di pasaran, dan cara Rangka Kerja Karate adalah pilihan yang lebih baik berbanding dengan rakan sejawatannya.

Kami mengikuti pendekatan langkah demi langkah untuk mencipta skrip ujian asas pertama kami. Kami bermula dengan mencipta projek Maven asas dalam Eclipse IDE untuk mencipta fail .feature, yang mengandungi semua senario ujian dan fail Runner untuk melaksanakan kes ujian yang disebut dalam fail .feature.

Pada penghujung berbilang langkah, kami dapat melihat laporan pelaksanaan keputusan ujian.

Kami berharap, tutorial ini berguna untuk pemula dalam mempelajari cara membina skrip ujian pertama mereka menggunakan Rangka Kerja Karate dan menjalankan Ujian API. Ini terperinci langkah demi langkahpendekatan ialah cara terbaik untuk menjalankan dan melaksanakan pelbagai ujian pada API.

SETERUSNYA>>

Lee telah membangunkan ini pada masa lapangnya.

Walaupun kami ingin menyelidiki akar Karate yang menarik, buat masa ini, mari kita bercakap tentang Alat Karate yang telah dibangunkan oleh Peter Thomas , salah satu alatan hebat yang datang untuk menyelamatkan penguji API.

Rangka kerja Karate mengikut gaya penulisan program Timun yang mengikut pendekatan BDD. Sintaks mudah difahami oleh bukan pengaturcara. Dan rangka kerja ini ialah satu-satunya alat ujian API yang telah menggabungkan Automasi API dan ujian prestasi menjadi satu alat kendiri.

Ia memberikan pengguna keupayaan untuk melaksanakan kes ujian dalam Selari dan melaksanakan JSON & Pemeriksaan XML.

Dengan maklumat ini, perkara penting tertentu boleh disimpulkan untuk memahami lebih lanjut alat Karate secara terperinci:

  • Karate ialah rangka kerja ujian BDD sebaliknya daripada TDD.
  • Ia direka bentuk supaya mudah untuk bukan pengaturcara. Ciri ini adalah pengubah permainan kerana ia membolehkan lebih banyak penggunaan dan akses oleh ramai orang tanpa mengira latar belakang teknikal atau kapasiti mereka.
  • Ia menggunakan fail ciri Timun dan bahasa Gherkins untuk menulis ujian yang sangat mudah untuk difahami.

Semua ciri ini menjadikannya salah satu alat automasi yang paling sesuai yang tersedia hari ini.

Sejarah Rangka Kerja Karate

Dicipta oleh ' Peter Thomas' pada 2017, perisian ini bertujuan untuk membuat ujianfungsi yang tersedia untuk semua orang. Ia ditulis dalam Java dan kebanyakan orang menjangkakan failnya juga berada dalam bahasa yang sama, namun, mujurlah, itu tidak berlaku.

Sebaliknya, ia menggunakan fail Gherkins, yang merupakan hasil hubungannya dengan Kerangka timun. Perisian automasi adalah lanjutan daripada Cucumber, oleh itu mewarisi penggunaan fail Gherkins dalam operasinya. Perbezaan besar antara kedua-duanya ialah Karate tidak menggunakan Java semasa menguji, tetapi Cucumber melakukannya.

Inilah sebab mengapa ia memenuhi keperluan bukan pengaturcara kerana sintaks Gherkins sangat mudah dibaca dan komprehensif. Inilah sebab Karate paling sesuai dan disyorkan untuk memasuki dunia ujian API automatik.

Berikut ialah beberapa ciri Rangka Kerja Ujian Karate:

  • Menggunakan bahasa Gherkins yang mudah difahami.
  • Ia tidak memerlukan pengetahuan pengaturcaraan teknikal seperti Java.
  • Ia berdasarkan piawaian Cucumber yang popular.
  • Mudah untuk mencipta rangka kerja.
  • Ujian selari ialah fungsi teras yang disediakan oleh Karate itu sendiri, oleh itu kita tidak perlu bergantung pada Maven, Gradle , dsb.
  • UI untuk menyahpepijat Ujian.
  • Memanggil fail ciri daripada fail lain.
  • Menyediakan sokongan untuk Ujian Pemacu Data yang dibina secara dalaman, oleh itu tidak perlu bergantung pada rangka kerja luaran.
  • Rehat Asli Terbina dalamLaporan. Selain itu, ia boleh disepadukan dengan Cucumber untuk Laporan UI yang lebih baik dan lebih jelas.
  • Menyediakan sokongan dalaman untuk menukar konfigurasi merentas persekitaran ujian yang berbeza (QA, Stage, Prod, Pre-Prod).
  • Sokongan lancar untuk penyepaduan CI/CD yang boleh berguna.
  • Mampu mengendalikan pelbagai panggilan HTTP:
    • Sokongan Soket Web
    • Permintaan SOAP
    • HTTP
    • Pengendalian kuki penyemak imbas
    • HTTPS
    • Data borang HTML
    • Permintaan XML

Membandingkan Karate Vs Rest-Assured

Reest Assured : Ia adalah perpustakaan berasaskan Java untuk menguji perkhidmatan REST. Ia menggunakan bahasa Java untuk menulis baris kod. Ia membantu dalam menguji pelbagai kategori permintaan, yang seterusnya menghasilkan pengesahan gabungan logik perniagaan yang berbeza.

Rangka Kerja Karate : Alat berasaskan Timun/Gherkins, digunakan untuk ujian SOAP & Perkhidmatan REST.

Jadual berikut menyenaraikan beberapa lagi perbezaan yang ketara antara Res-Assured & Rangka Kerja Karate:

S.No Asas Rangka Kerja Karate REST-Assured
1 Bahasa Ia menggunakan gabungan Timun dan Gherkins Ia menggunakan Bahasa Java
2 Saiz Kod Biasanya, baris kod adalah kurang, kerana ia mengikut struktur seperti Timun Barisan kod lebih banyak kerana ia melibatkanpenggunaan bahasa Java
3 Pengetahuan Teknikal diperlukan Bukan Pengaturcara boleh menulis dengan mudah kod Gherkins Pengetahuan teknikal diperlukan untuk menulis kod Java
4 Pengujian Berdasarkan Data Perlu menggunakan TestNG atau yang setara untuk menyokong yang sama Teg dalaman boleh digunakan untuk menyokong ujian data
5 Adakah ia menyediakan sokongan panggilan SOAP Ya, ia menyediakan Ia hanya berkaitan dengan permintaan REST
6 Ujian Selari Ya, ujian selari mudah disokong dengan penjanaan laporan selari terlalu Tidak pada tahap yang besar. Walaupun orang ramai telah mencuba melakukan ini, kadar kegagalan adalah lebih daripada kadar kejayaan
7 Pelaporan Ia menyediakan pelaporan dalaman, oleh itu tidak perlu bergantung pada pemalam luaran. Kami juga boleh menyepadukannya dengan pemalam pelaporan Timun untuk UI yang lebih baik. Perlu bergantung pada Pemalam Luaran seperti Junit, TestNG
8 Sokongan CSV untuk Data luaran Ya, daripada Karate 0.9.0 Tidak, perlu menggunakan Kod Java atau pustaka
9 Automasi UI Web Ya, daripada Karate 0.9.5 Automasi Web-UI adalah mungkin Tidak, ia tidak disokong
10 Contoh 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"));

Oleh itu, seperti yang ditunjukkan oleh perbezaan di atas, adalah selamat untuk mengatakan bahawa Karate adalah salah satu perkara paling mudah yang boleh dilakukan oleh sesiapa sahaja.

Alatan Diperlukan Untuk Bekerja Dengan Rangka Kerja Karate

Kini, kerana kami telah mendapat pengetahuan asas kami tentang Rangka Kerja Karate, mari kita lihat proses dan alatan yang diperlukan dalam menyediakan persekitaran Karate.

#1) Eclipse

Eclipse ialah Persekitaran Pembangunan Bersepadu yang digunakan dalam bidang pengaturcaraan komputer. Ia kebanyakannya digunakan untuk Pengaturcaraan Java. Seperti yang dinyatakan sebelum ini, Karate ditulis dalam Java, jadi lebih masuk akal mengapa Eclipse ialah IDE yang digunakan untuk perisian ujian API. Sebab lain ialah ia adalah alat sumber terbuka, dan ini adalah alasan yang cukup kukuh untuk memilih alat ini.

Nota: Kami juga boleh menggunakan IntelliJ, Visual Studio dan lain-lain editor yang tersedia di pasaran.

#2) Maven

Ini ialah alat automasi binaan yang digunakan terutamanya untuk membina projek Java. Ia adalah salah satu cara untuk menyediakan persekitaran Karate dan menulis kod. Untuk menyediakan Eclipse anda dengan keperluan Maven, anda boleh klik di sini untuk pemasangan Maven.

Semasa bekerja di Maven, gunakan kebergantungan Maven yang akan membantu anda menyokong Rangka Kerja Karate.

Perkara berikut kebergantungan akan digunakan dengan Maven dalam pom.xml.

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

Nota: Versi terkini mungkintersedia dalam repositori Maven.

#3) Gradle

Gradle ialah alternatif kepada Maven dan boleh digunakan dalam kapasiti yang sama. Mereka mempunyai persamaan dan perbezaan mereka tetapi boleh digunakan secara sama rata dalam menyediakan persekitaran untuk kod Karate kami.

Ia lebih mudah digunakan, fleksibel dan disyorkan untuk digunakan apabila aplikasi kami mempunyai beberapa keperluan modularisasi dan pengurusan dengan sekumpulan pemalam. Kod persediaan Gradle akan kelihatan seperti ini,

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

Nota: Anda boleh sama ada menggunakan MAVEN atau GRADLE.

#4) Persediaan Persekitaran Java dalam Sistem anda

Perlu menyediakan persekitaran JDK dan JRE untuk bermula dengan skrip Rangka Kerja Karate.

Struktur Skrip Ujian Karate

Skrip ujian Karate dikenali kerana memiliki sambungan ".feature". Harta ini diwarisi daripada Timun. Organisasi fail dalam konvensyen Java juga dibenarkan sama rata. Anda bebas untuk menyusun fail anda mengikut konvensyen pakej Java.

Walau bagaimanapun, garis panduan Maven mengarahkan supaya penyimpanan fail bukan Java dilakukan secara berasingan. Ia dilakukan dalam struktur src/test/resources . Dan fail Java disimpan di bawah src/main/java .

Tetapi mengikut pencipta Rangka Kerja Karate, mereka amat percaya bahawa kami menyimpan kedua-dua fail Java dan bukan Java bersebelahan. sebelah. Menurut mereka, lebih mudah untuk mencariFail *.java dan *.feature apabila ia disimpan bersama, dan bukannya mengikut struktur Maven standard.

Ini boleh dilakukan dengan mudah dengan mengubah pom.xml anda seperti berikut (Untuk Maven):

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

Berikut ialah garis besar struktur umum Rangka Kerja Karate:

Sekarang, memandangkan Rangka Kerja Karate ini menggunakan fail Runner, yang juga diperlukan dalam Timun untuk menjalankan fail ciri, jadi kebanyakan penulisan akan mengikut piawaian Timun.

Tetapi, tidak seperti Timun, langkah-langkah itu tidak memerlukan definisi yang jelas dalam Karate dan yang mana , seterusnya, meningkatkan fleksibiliti dan kemudahan operasi. Kita tidak perlu menambah gam tambahan yang biasanya kita perlu tambah apabila kita mengikuti rangka kerja Timun.

Kelas “Runner” selalunya dinamakan TestRunner.java.

Kemudian fail TestRunner.java akan berbentuk:

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

Dan bercakap tentang fail .feature , ia mengandungi semua ujian senario yang perlu diuji untuk memastikan API berfungsi mengikut keperluan yang dijangkakan.

Fail *.ciri umum kelihatan seperti yang ditunjukkan di bawah:

 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

Mencipta Skrip Ujian Karate Asas Pertama

Bahagian ini akan membantu anda bermula dengan penciptaan Skrip Ujian pertama anda, yang akan membantu anda menukar API dalam bentuk rangka kerja Karate.

Sebelum kami menulis skrip ujian asas Karate,sila pasangkan keperluan berikut pada mesin anda:

  • Eclipse IDE
  • Maven. Tetapkan laluan Maven yang sesuai.
  • JDK & JRE. Tetapkan laluan yang sesuai.

Mari kita lihat pendekatan langkah demi langkah:

#1) Cipta Projek MAVEN baharu dalam Editor Eclipse

  • Open Eclipse
  • Klik pada Fail. Pilih Projek Baharu.

  • Pilih Projek Maven

  • Pilih lokasi Ruang Kerja.
  • Pilih Archetype (biasanya kami memilih “ Maven-archetype-quickstart 1.1 ” untuk projek Maven yang mudah).
  • Sediakan ID Kumpulan & ID Artifak (kami telah menggunakan nilai berikut dalam contoh kami).
    • ID Kumpulan : Karate
    • ID Artifak: KarateTestScriptsSample
  • Klik pada Selesai untuk melengkapkan persediaan.

#2) Setelah dibuat, kini anda akan dapat melihat struktur berikut dalam tetingkap Project Explorer.

#3) Sertakan semua Kebergantungan anda.

Langkah pertama kami, selepas persediaan kami akan memasukkan semua kebergantungan yang diperlukan untuk pelaksanaan. Kami akan menyimpan semua teg di bawah POM.xml (Andaikan anda sudah mengetahui penggunaan POM.xml).

  • Buka POM.xml dan salin kod di bawah di bawah teg kebergantungan dan simpan fail.
  com.intuit.karate karate-apache 0.9.5 test   com.intuit.karate karate-junit4 0.9.5 test 

Klik di sini untuk mendapatkan sumber.

#4) Mari Sumbangsaran senario, apakah yang akan kita uji

Gulung ke atas