Ushbu qoʻllanma Karate Framework yordamida API testiga kirishdir. Karate test skriptining tuzilishi va birinchi test skriptini yaratish bosqichlari haqida bilib oling:

API qisqartma boʻlib, Application Programming Interface degan maʼnoni anglatadi. Oddiy qilib aytganda, biz uni ilovalar oʻrtasida aloqa oʻrnatish imkonini beruvchi dasturiy vositachi sifatida belgilashimiz mumkin.

Bizga API testi kerak, chunki:

  • Natijalar tezroq chop etiladi, shuning uchun API yaxshi ishlayaptimi yoki yo'qligini ko'rish uchun endi kutishning hojati yo'q.
  • Tezroq javob berish bilan ushbu API-larning joylashishi ham tezlashadi, shuning uchun tez ishlashga imkon beradi.
  • Nosozliklarni erta aniqlash, Ilovaning UI yaratilishidan oldin ham xavflarni kamaytirish va nosozliklarni tuzatishga imkon bering.
  • Kichikroq muddatda keng miqyosda yetkazib berish mumkin.

API testida ishlash uchun bizda bozorda Postman, Mocha va Chai kabi turli xil vositalar mavjud. Ular yaxshi natijalarni va API-larni sinab ko'rishda samarali foydalanishni namoyish etdi, biroq bularga kod katta ta'sir ko'rsatadi. Ulardan foydalanish uchun texnik jihatdan mukammal va dasturlash tillarini bilish kerak.

Karate Framework o'zining oldingi dasturiy vositalarining ushbu muammosini juda yaxshi hal qiladi.

Karate ramkasi

Karate nima? Karate haqida gaplashaylik. Bu Yaponiyadanmi? Siz nima deb o'ylaysiz? Bu buyuk Bryus bo'lishi mumkinbu Karate asosiy test skripti.

Ssenariy:

Biz ushbu URL bilan APIni sinovdan o‘tkazamiz.

Yo‘l: api/users/2

Usul: GET

Va so'rov Muvaffaqiyat kodi ( 200) yoki yo'q.

Oddiy so'z bilan aytganda, biz API namunasini sinab ko'ramiz, u muvaffaqiyatli bajarilmoqdami yoki yo'qmi.

Eslatma: Biz sinov uchun mavjud bo'lgan API namunasini olamiz. Siz istalgan PATHni tanlashingiz yoki API ga murojaat qilishingiz mumkin.

Manba uchun shu yerni bosing.

#5) Endi keyingi qadamimiz yaratish boʻladi. .feature fayli.

Kirish bo'limida muhokama qilinganidek, .feature fayli Bodringdan meros qilib olingan xususiyatdir. Ushbu faylda biz API testini bajarish uchun bajarilishi kerak boʻlgan test stsenariylarini yozamiz.

  • Loyihangizdagi src/test/java jildiga oʻting.

  • Uni o'ng tugmasini bosing va yangi fayl yarating - userDetails.feature. Keyin "Finish" tugmasini bosing.

Endi siz src/test/java

Yashil rangli belgi biz yaratgan Bodringdagi .feature fi ga o'xshaydi.

  • Fayl yaratilgandan so'ng, biz keyingi bo'limda muhokama qilinadigan test stsenariylarimizni yozamiz.

#6) Bizda stsenariy vabo'sh . xususiyati fayli tayyor, endi birinchi skriptimizni boshlaylik. Keling, kodlashni boshlaylik

Biz №5-bosqichda yaratgan userDetails.feature fayli ostida quyidagi kod qatorini yozamiz:

 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

Tushunishga harakat qilaylik yuqoridagi faylda yozilgan komponentlar:

  • Xususiyat: Kalit so'z biz sinab ko'rayotgan xususiyat nomini tushuntiradi.
  • Ma'lumot: Bu ixtiyoriy bo'lim bo'lib, Oldindan talab bo'limi sifatida ko'rib chiqiladi. Bu APIni sinab ko'rish uchun nima kerakligini aniqlash uchun ishlatilishi mumkin. Unda SALOV, URL va amp; PARAM opsiyalari.
  • Ssenariy: Siz koʻradigan har bir xususiyat fayli kamida bitta xususiyatga ega boʻladi (garchi u bir nechta stsenariylarni berishi mumkin) . Bu test ishining tavsifi.
  • Belgilangan: Bu boshqa test bosqichini bajarishdan oldin bajarilishi kerak bo'lgan bosqichdir. Bu bajarilishi kerak bo'lgan majburiy harakatdir.
  • Qachon: Keyingi sinov bosqichini bajarish uchun bajarilishi kerak bo'lgan shartni bildiradi.
  • Keyin: Bu bizga Qachon da ko'rsatilgan shart bajarilsa nima bo'lishi kerakligini aytadi.

Izoh: Yuqorida qayd etilgan barcha kalit so'zlar Gherkins tilidan. Bular Bodring yordamida test skriptlarini yozishning standart usulidir.

Va xususiyat faylida ishlatiladigan yana bir qancha so'zlar:

  • 200: Bu biz bo'lgan holat/javob kodikutish (Holat kodlari roʻyxati uchun shu yerni bosing)
  • GET: Bu POST, PUT va boshqalar kabi API usuli.

Ushbu tushuntirishga umid qilamiz. tushunishingiz oson edi. Endi siz yuqoridagi faylda aynan nima yozilgani bilan bog'lanishingiz mumkin.

Endi biz TestRunner.java faylini yaratishimiz kerak

Yuqorida tushuntirilganidek bo'limida, Bodring sinov stsenariylarini o'z ichiga olgan .feature faylini bajarish uchun talab qilinadigan Runner fayliga muhtoj.

  • src/test/java loyihangizda

  • Uni o'ng tugmasini bosing va yangi Java faylini yarating: TestRunner.java
  • Fayl yaratilgandan so'ng, quyidagi kod qatorlarini uning ostiga qo'ying:
 import org.junit.runner.RunWith; import com.intuit.karate.junit4.Karate; @RunWith(Karate.class) public class TestRunner { }
  • Test Runner - bu endi faylni bajarish uchun bajariladigan fayl. №5 qadam ostida yozilgan kerakli stsenariy.

#7) Endi biz TestRunner.Java va fayllari bilan tayyormiz. userDeatils.feature. Bizga qolgan yagona vazifa Skriptni ishga tushirish

  • TestRunner.java fayliga o'ting va quyidagi rasmda ko'rsatilgandek faylni o'ng tugmasini bosing.

  • Run As -> Junit Test
  • Endi, tanlaganingizdan so'ng, test ishi boshlanganini kuzatishni boshlaysiz.
  • Test skriptining bajarilishini kuting. Tugatganingizdan so'ng, oynangizda quyidagi rasmda ko'rsatilgandek narsani ko'rasiz.

  • Nihoyat, aytishimiz mumkin.Biz Karate Framework-dan foydalangan holda birinchi asosiy Test skriptini muvaffaqiyatli yaratdik.

#8) Va nihoyat, Karate Framework, shuningdek, bajarilgan bajarish uchun HTML hisobot taqdimotini ham beradi.

  • Maqsadli jildga o'tish -> surefire-reports-> Bu yerda siz ochishingiz mumkin bo'lgan HTML hisobotingizni ko'rasiz.

** Shuningdek, Chrome orqali ochishni tavsiya qilamiz. Yaxshiroq koʻrinish va his qilish uchun brauzer.

  • Keyingi HTML hisoboti sizga koʻrsatiladi Ssenariylar & Ko'rsatilgan stsenariy uchun bajarilgan test :

Xulosa

Ushbu qo'llanmada biz API sinovlari, turli testlarni muhokama qildik. Bozorda mavjud vositalar va Karate Framework oʻz hamkasblariga qaraganda qanday yaxshi variant.

Biz birinchi asosiy test skriptimizni yaratish uchun bosqichma-bosqich yondashuvga amal qildik. Biz .feature faylini yaratish uchun Eclipse IDE da asosiy Maven loyihasini yaratishdan boshladik, unda barcha sinov stsenariysi va .feature faylida koʻrsatilgan test ishini bajarish uchun Runner fayli mavjud.

Ko'p bosqichlar oxirida biz test natijalarining bajarilish hisobotini ko'rishimiz mumkin edi.

Ushbu qo'llanma yangi boshlanuvchilar uchun Karate Framework yordamida birinchi test skriptini yaratishni o'rganishda foydali bo'ldi deb umid qilamiz. va API testini o'tkazing. Bu bosqichma-bosqich batafsilyondashuv - bu APIda turli testlarni ishga tushirish va bajarishning ajoyib usuli.

KEYINGI>>

Li buni bo'sh vaqtida ishlab chiqqan.

Biz karatening qiziqarli ildizlarini o'rganmoqchi bo'lsak-da, hozircha, ishlab chiqilgan Karate vositasi haqida gapiraylik. tomonidan Piter Tomas , API testerlarini qutqarish uchun kelgan ajoyib vositalardan biri.

Karate ramkasi BDD yondashuviga rioya qilgan holda dastur yozishning Bodring uslubiga amal qiladi. Sintaksisni dasturchi bo'lmaganlar tushunishi oson. Va bu ramka API avtomatlashtirish va unumdorlik testlarini yagona mustaqil vositaga birlashtirgan yagona API sinov vositasidir.

U foydalanuvchilarga test holatlarini Parallelda bajarish va JSON & XML tekshiruvlari.

Ushbu ma'lumotlardan foydalanib, Karate vositasini batafsil tushunish uchun ba'zi muhim fikrlarni chiqarish mumkin:

  • Karate - bu BDD test tizimi. ning TDD.
  • U dasturchi bo'lmaganlar uchun oson bo'lishi uchun yaratilgan. Bu xususiyat oʻyinni oʻzgartiruvchi xususiyatdir, chunki u koʻpchilikning texnik maʼlumotlari yoki imkoniyatlaridan qatʼi nazar, koʻproq foydalanish va ulardan foydalanish imkonini beradi.
  • U testni yozish uchun Cucumber funksiya fayli va Gherkins tilidan foydalanadi. tushunish juda oson.

Ushbu xususiyatlarning barchasi uni bugungi kunda mavjud bo'lgan eng qulay avtomatlashtirish vositalaridan biriga aylantiradi.

Karate Framework tarixi

" tomonidan yaratilgan. 1>Piter Tomas' 2017 yilda ushbu dastur sinovdan o'tkazishga qaratilganfunksiyalar hamma uchun mavjud. U Java-da yozilgan va ko'pchilik uning fayllari ham bir xil tilda bo'lishini kutishgan, ammo, xayriyatki, unday emas.

To'g'rirog'i, u Gherkins fayllaridan foydalanadi, bu uning fayl bilan aloqasi natijasidir. Bodring ramkasi. Avtomatlashtirish dasturi bodringning kengaytmasi bo'lib, shuning uchun uning ishlashida Gherkins faylidan foydalanishni meros qilib oladi. Ularning orasidagi katta farq shundaki, Karate test paytida Java-dan foydalanmaydi, ammo Bodring ishlatadi.

Gherkins sintaksisi juda o'qishli va keng qamrovli bo'lgani uchun u dasturchi bo'lmaganlar uchun ham aynan shu sababdir. Shu sababli Karate eng mos keladi va avtomatlashtirilgan API sinovlari dunyosiga kirish uchun tavsiya etiladi.

Quyidagilar Karate Testing Frameworkning ba'zi xususiyatlari:

  • Oson tushunarli Gherkins tilidan foydalanadi.
  • Bu Java kabi texnik dasturlash bilimini talab qilmaydi.
  • U mashhur Cucumber standartlariga asoslangan.
  • Romka yaratish oson.
  • Parallel test - bu karatening o'zi tomonidan taqdim etiladigan asosiy funksionallikdir, shuning uchun biz Maven, Gradle va hokazolarga bog'lanishimiz shart emas.
  • Testni disk raskadrovka qilish uchun UI.
  • Boshqa fayldan xususiyat faylini chaqirish.
  • Uyda oʻrnatilgan Data Driver testini qoʻllab-quvvatlaydi, shuning uchun tashqi ramkalarga bogʻliq boʻlish shart emas.
  • O'rnatilgan mahalliy dam olishHisobotlar. Bundan tashqari, uni yaxshiroq UI hisobotlari va yanada aniqlik uchun Bodring bilan integratsiyalash mumkin.
  • Turli sinov muhitlarida (QA, Stage, Prod, Pre-Mahsulot) konfiguratsiyani almashtirish uchun ichki yordam beradi.
  • Foydali bo'lishi mumkin bo'lgan CI/CD integratsiyasini uzluksiz qo'llab-quvvatlash.
  • Turli HTTP qo'ng'iroqlarini boshqarish qobiliyati:
    • Web Socket-ni qo'llab-quvvatlash
    • SOAP so'rovi
    • HTTP
    • Brauzer cookie-fayllarini qayta ishlash
    • HTTPS
    • HTML-form ma'lumotlari
    • XML so'rovi

Karate va xotirjamlikni solishtirish

Ishonchsiz : Bu REST xizmatlarini sinab ko'rish uchun Java-ga asoslangan kutubxona. Kod satrlarini yozish uchun Java tilidan foydalanadi. Bu ko'plab so'rov toifalarini sinovdan o'tkazishda yordam beradi, bu esa turli biznes mantiqiy kombinatsiyalarini tekshirishga olib keladi.

Karate Framework : SOAP va amp; REST xizmatlari.

Quyidagi jadvalda Ishonchli & Karate Framework:

S.No Asosiy Karate Framework REST-Assured
1 Til U bodring va kornişonlar kombinatsiyasidan foydalanadi U Java tilidan foydalanadi
2 Kod hajmi Odatda, qator kod kamroq, chunki u bodringga o'xshash tuzilishga ega Kod qatori ko'proq, chunki uJava tilidan foydalanish
3 Texnik bilim talab qilinadi Dasturchi bo'lmaganlar osongina yozishlari mumkin Gherkins kodi Java kodini yozish uchun texnik bilim talab qilinadi
4 Ma'lumotlarga asoslangan test Bir xilni qo'llab-quvvatlash uchun TestNG yoki ekvivalentidan foydalanish kerak Ma'lumotlar testini qo'llab-quvvatlash uchun ichki teglardan foydalanish mumkin
5 U SOAP qo'ng'iroqlarini qo'llab-quvvatlaydimi Ha, beradi Bu faqat REST so'rovi bilan bog'liq
6 Parallel test Ha, parallel hisobot yaratish bilan parallel sinov osonlik bilan qoʻllab-quvvatlanadi. ham Ko'p darajada emas. Odamlar buni qilishga uringan bo'lsalar ham, muvaffaqiyatsizlik darajasi muvaffaqiyat darajasidan yuqori
7 Hisobot qilish U ichki hisobotlarni taqdim etadi, shuning uchun tashqi plaginlarga bog'liq bo'lishi shart emas. Yaxshiroq UI uchun biz uni Cucumber hisobot plagini bilan ham integratsiyalashimiz mumkin. Junit, TestNG kabi tashqi plaginlarga qaram bo'lish kerak
8 Tashqi ma'lumotlar uchun CSV-ni qo'llab-quvvatlash Ha, Karate 0.9.0 dan Yo'q, Java kodi yoki kutubxonadan foydalanish kerak
9 Web UI avtomatlashtirish Ha, Karate 0.9.5 dan Web-UI avtomatlashtirish mumkin Yo'q, qo'llab-quvvatlanmaydi
10 GET namunasi 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"));

Demak, Yuqoridagi farqlarni hisobga olsak, ishonch bilan aytish mumkinki, karate har kim qila oladigan eng oson ishlardan biridir.

Karate Framework bilan ishlash uchun zarur vositalar

Endi, biz bu borada asosiy bilimlarga egamiz. Karate Framework toʻgʻrisida, keling, Karate muhitini oʻrnatish uchun zarur boʻlgan jarayonlar va vositalarni koʻrib chiqaylik.

#1) Eclipse

Eclipse – bu integratsiyalashgan rivojlanish muhiti. kompyuter dasturlash sohasida. U asosan Java dasturlash uchun ishlatiladi. Yuqorida aytib o'tganimizdek, Karate Java-da yozilgan, shuning uchun Eclipse nima uchun API test dasturi uchun asosiy IDE ekanligi mantiqiyroq. Yana bir sabab shundaki, u ochiq manbali vositadir va bu vositani tanlash uchun juda kuchli sababdir.

Izoh: Biz hatto IntelliJ, Visual Studio va boshqa turli xil dasturlardan foydalanishimiz mumkin. bozorda mavjud muharrirlar.

#2) Maven

Bu asosan Java loyihalarini yaratish uchun foydalaniladigan qurilishni avtomatlashtirish vositasi. Bu karate muhitini o'rnatish va kod yozishning bir usuli. Eclipse bilan Maven talablarini o'rnatish uchun Maven o'rnatilishi uchun shu yerni bosing.

Mavenda ishlayotganda Karate Framework-ni qo'llab-quvvatlashga yordam beradigan Maven bog'liqliklaridan foydalaning.

Quyidagilar bog'liqliklar Maven bilan pom.xml da ishlatiladi.

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

Izoh: Eng so'nggi versiyalar bo'lishi mumkinMaven omborida mavjud bo'lishi mumkin.

#3) Gradle

Gradle Mavenga muqobil bo'lib, teng quvvatda ishlatilishi mumkin. Ularning oʻxshash va farqli tomonlari bor, lekin karate kodlarimiz uchun muhit yaratishda teng darajada foydalanish mumkin.

Uni ishlatish osonroq, moslashuvchan va ilovamiz modullashtirish va boshqarish uchun baʼzi talablarga ega boʻlsa foydalanish tavsiya etiladi. plaginlar to'plami. Gradle o'rnatish kodi shunday ko'rinadi,

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

Izoh: Siz MAVEN yoki GRADLE-dan foydalanishingiz mumkin.

#4) Tizimingizda Java muhitini sozlash

Karate Framework skriptlari bilan ishlashni boshlash uchun JDK va JRE muhitini sozlash kerak.

Karate test skriptining tuzilishi

Karate test skripti “.feature” kengaytmasiga egaligi bilan mashhur. Bu mulk bodringdan meros bo'lib qolgan. Java konventsiyasida fayllarni tashkil etishga ham bir xil darajada ruxsat berilgan. Siz fayllaringizni Java paketi konventsiyalariga muvofiq tartibga solishingiz mumkin.

Biroq, Maven ko'rsatmalari Java bo'lmagan fayllarni alohida saqlashni buyuradi. Ular src/test/resources tuzilmasida amalga oshiriladi. Java fayllari esa src/main/java ostida saqlanadi.

Ammo Karate Framework yaratuvchilariga ko'ra, ular biz Java va Java bo'lmagan fayllarni yonma-yon saqlashimizga qat'iy ishonadilar. tomoni. Ularning fikriga ko'ra, ularni izlash ancha oson*.java va *.feature fayllari standart Maven tuzilishiga rioya qilishdan ko'ra birga saqlanganida.

Buni pom.xml-ni quyidagi tarzda sozlash orqali osonlik bilan amalga oshirish mumkin (Maven uchun):

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

Quyida Karate Framework umumiy tuzilishining konspekti keltirilgan:

Endi, chunki bu Karate Framework ishlatilmoqda Runner fayli, bu xususiyat fayllarni ishga tushirish uchun Bodringda ham kerak, shuning uchun yozuvning aksariyat qismi Bodring standartlariga amal qiladi.

Ammo, Bodringdan farqli o'laroq, qadamlar Karateda aniq ta'rifni talab qilmaydi va qaysi , o'z navbatida, moslashuvchanlik va operatsiyalarning qulayligini oshiradi. Bodring ramkasiga amal qilganimizda, odatda qo'shishimiz kerak bo'lgan qo'shimcha elim qo'shishimiz shart emas.

“Runner” sinfi ko'pincha TestRunner.java deb ataladi.

Keyin TestRunner.java fayli quyidagi shaklga ega bo'ladi:

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

Va .feature fayli haqida gapiradigan bo'lsak, u barcha testlarni o'z ichiga oladi. API kutilgan talablarga muvofiq ishlayotganiga ishonch hosil qilish uchun sinovdan o'tkazilishi kerak bo'lgan stsenariylar.

Umumiy *.feature fayli quyida ko'rsatilgandek ko'rinadi:

 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

Birinchi asosiy karate test skriptini yaratish

Ushbu bo'lim sizga eng birinchi test skriptingizni yaratishni boshlashingizga yordam beradi, bu sizga API'larni Karate ramkasi ko'rinishiga aylantirish uchun foydali bo'ladi.

Karate bo'yicha asosiy test skriptlarini yozishdan oldin,Iltimos, kompyuteringizga quyidagi rekvizitlarni o'rnating:

  • Eclipse IDE
  • Maven. Tegishli Maven yo'lini o'rnating.
  • JDK & JRE. Tegishli yo'lni belgilang.

Keling, bosqichma-bosqich yondashuvni ko'rib chiqamiz:

#1) yangi MAVEN Eclipse Editor loyihasi

  • Eclipse-ni oching
  • Fayl ustiga bosing. Yangi loyihani tanlang.

  • Maven loyihasini tanlang

  • Tanlash Ish maydoni joylashuvi.
  • Arxetipni tanlang (odatda biz “ Maven-archetype-quickstart 1.1 ”ni oddiy Maven loyihalari uchun tanlaymiz).
  • Ta'minlash guruh identifikatori & amp; Artifact ID (biz misolimizda quyidagi qiymatlardan foydalanganmiz).
    • Guruh identifikatori : Karate
    • Artifakt identifikatori: KarateTestScriptsSample
  • To'ldirish uchun Finish tugmasini bosing sozlash.

#2) Yaratilgandan so'ng, endi siz Project Explorer oynasida quyidagi tuzilmani ko'rishingiz mumkin bo'ladi.

#3) Barcha bog'liqliklaringizni qo'shing.

Bizning birinchi qadamimiz, sozlashdan so'ng biz barcha bog'liqliklarni kiritishimiz kerak. ijro uchun. Biz barcha tegni POM.xml ostida saqlaymiz (POM.xml dan foydalanish haqida siz allaqachon xabardor bo'lsangiz).

  • POM.xml-ni oching va quyidagi kodni bog'liqlik yorlig'i ostida nusxa oling va saqlang fayl.
  com.intuit.karate karate-apache 0.9.5 test   com.intuit.karate karate-junit4 0.9.5 test 

Manba uchun shu yerni bosing.

#4) Keling, stsenariyni oʻylab koʻraylik, biz nimani sinab koʻrmoqchimiz.

Yuqoriga o'tish