Bu dərslik Karate Çərçivəsindən istifadə edərək API Testinə girişdir. Karate Test Skriptinin strukturu və ilk test skriptini qurmaq üçün addımlar haqqında məlumat əldə edin:

API, Tətbiq Proqramlaşdırma İnterfeysi mənasını verən abbreviaturadır. Sadə dillə desək, biz onu proqramlar arasında əlaqə yaratmağa imkan verən proqram vasitəçisi kimi müəyyən edə bilərik.

Bizə API testi lazımdır, çünki:

  • Nəticələr daha tez dərc olunur, ona görə də API-nin yaxşı işlədiyini görmək üçün daha gözləməyə ehtiyac yoxdur.
  • Daha sürətli cavabla bu API-lərin tətbiqi də daha sürətli olur, beləliklə, tez işləməyə imkan verir.
  • Uğursuzluğun erkən aşkarlanması, hətta tətbiqin UI yaradılmamışdan əvvəl bizə riskləri azaltmağa və nasazlıqları düzəltməyə icazə verin.
  • Daha qısa müddətdə geniş miqyaslı çatdırılma mümkündür.

API Testi üzərində işləyə bilmək üçün bazarda Postman, Mocha və Chai kimi müxtəlif alətlərimiz mövcuddur. Bunlar API-lərin sınaqdan keçirilməsi üçün yaxşı nəticələr və effektiv istifadə nümayiş etdirdi, lakin bunlar koddan çox təsirlənir. Bunlardan istifadə edə bilmək üçün texniki cəhətdən sağlam və proqramlaşdırma dilləri ilə tanış olmaq lazımdır.

Karate Framework özündən əvvəlki proqram vasitələrinin bu məsələsini gözəl həll edir.

Karate Çərçivəsi nədir

Karate? Karate haqqında danışaq. Yaponiyadandır? Nə fikirləşirsən? Böyük Bruce ola bilərbu Karate Əsas Test Skripti.

Ssenari:

Bu URL ilə API sınaqdan keçirəcəyik.

Yol: api/users/2

Metod: GET

Və sorğunun Uğur kodunu qaytarıb qaytarmadığını yoxlamalıyıq ( 200) yoxsa yox.

Sadə dillə desək, onun uğurla icra edilib-edilmədiyini görmək üçün sadəcə nümunə API-ni sınaqdan keçirəcəyik.

Qeyd: Biz sınaq üçün mövcud olan nümunə API götürürük. İstənilən PATH seçə və ya API-yə müraciət edə bilərsiniz.

Mənbə üçün bura klikləyin.

#5) İndi növbəti addımımız yaratmaq olacaq. .feature faylı.

Giriş bölməsində müzakirə edildiyi kimi, .feature faylı Xiyardan miras alınmış xüsusiyyətdir. Bu faylda biz API Testini yerinə yetirmək üçün yerinə yetirilməli olan sınaq ssenarilərini yazacağıq.

  • Layihənizdə src/test/java Qovluğuna keçin.

  • Sağ klikləyin və yeni fayl yaradın – userDetails.feature. Sonra Bitir düyməsini klikləyin.

İndi siz src/test/java

Yaşıl rəngli ikona indicə yaratdığımız Xiyardakı .feature fi le bənzəyir.

  • Fayl yaradıldıqdan sonra, indi növbəti bölmədə müzakirə olunacaq sınaq ssenarilərimizi yazacağıq.

#6) Ssenari vəboş . xüsusiyyət faylı hazırdır, indi ilk skriptimizə başlayaq. Gəlin kodlaşdırmağa başlayaq

Addım 5-də yaratdığımız userDetails.feature faylı altında aşağıdakı Kod sətrini yazın:

 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

Gəlin başa düşməyə çalışaq yuxarıdakı faylda yazılmış komponentlər:

  • Xüsusiyyət: Açar söz sınaqdan keçirdiyimiz funksiyanın adını izah edir.
  • Ümumi məlumat: Bu, Ön şərt bölməsi kimi qəbul edilən isteğe bağlı bölmədir. Bu, API-ni sınamaq üçün nəyin lazım olduğunu müəyyən etmək üçün istifadə edilə bilər. O, HEADER, URL & PARAM seçimləri.
  • Ssenari: Görəcəyiniz hər bir xüsusiyyət faylı ən azı bir funksiyaya malik olacaq (baxmayaraq ki, çox ssenari verə bilər) . Bu, sınaq işinin təsviridir.
  • Verilmişdir: Hər hansı digər sınaq addımı yerinə yetirilməzdən əvvəl yerinə yetirilməli olan addımdır. Bu yerinə yetirilməli olan məcburi hərəkətdir.
  • Nə vaxt: Növbəti sınaq addımını yerinə yetirmək üçün yerinə yetirilməli olan şərti müəyyən edir.
  • Sonra: Bu, də qeyd olunan şərt yerinə yetirildikdə nə baş verməli olduğunu bildirir.

Qeyd: Yuxarıda qeyd olunan bütün açar sözlər Gherkins dilindən. Bunlar, Cucumber istifadə edərək test skriptlərinin yazılmasının standart üsuludur.

Və xüsusiyyət faylında istifadə olunan daha bir neçə söz:

  • 200: Bu, status/cavab kodudurgözləyirik (Status kodlarının siyahısı üçün bura klikləyin)
  • GET: POST, PUT və s. kimi API metodudur.

Ümid edirik ki, bu izahat olacaq başa düşməyiniz asan idi. İndi siz yuxarıdakı faylda dəqiq yazılanlarla əlaqə saxlaya biləcəksiniz.

İndi biz TestRunner.java faylını yaratmalıyıq

Yuxarıda izah edildiyi kimi bölməsində, Xiyar sınaq ssenarilərini ehtiva edən .feature faylını yerinə yetirmək üçün tələb olunacaq Runner faylına ehtiyac duyur.

  • Qovluğa keçin src/test/java layihənizdə

  • Sağ klikləyin və yeni Java faylı yaradın: TestRunner.java
  • Fayl yaradıldıqdan sonra onun altına aşağıdakı kod sətirlərini yerləşdirin:
 import org.junit.runner.RunWith; import com.intuit.karate.junit4.Karate; @RunWith(Karate.class) public class TestRunner { }
  • Test Runner indi yerinə yetirmək üçün yerinə yetiriləcək fayldır. 5-ci addım altında yazılmış istədiyiniz ssenari.

#7) İndi biz həm TestRunner.Java , həm də faylları ilə hazırıq. userDeatils.feature. Bizim üçün qalan yeganə vəzifə Skripti çalışdırmaqdır.

  • TestRunner.java faylına keçin və aşağıdakı şəkildə göstərildiyi kimi faylın üzərinə sağ klikləyin.

  • Run As -> Junit Test
  • İndi seçildikdən sonra test işinin artıq başladığını müşahidə etməyə başlayacaqsınız.
  • Test skriptinin icrasını gözləyin. Bitirdikdən sonra pəncərənizdə aşağıdakı şəkildəki kimi bir şey müşahidə edəcəksiniz.

  • Nəhayət deyə bilərik ki, Karate Çərçivəsindən istifadə edərək ilk əsas Test Skriptini uğurla yaratdıq.

#8) Son olaraq Karate framework həmçinin yerinə yetirilən icra üçün HTML hesabat təqdimatını verir.

  • Hədəf Qovluğuna keçin -> surefire-reports-> Burada aça biləcəyiniz HTML hesabatınızı görəcəksiniz.

** Sizə eyni zamanda Chrome ilə eyni hesabatı açmağı təklif edirik. Daha yaxşı görünüş və hiss üçün brauzer.

  • Aşağıdakı HTML Hesabatı sizə Ssenarilər & Sözügedən ssenari üçün yerinə yetirilən test :

Nəticə

Bu dərslikdə biz API sınağı, müxtəlif testləri müzakirə etdik bazarda mövcud olan alətlər və Karate Çərçivəsinin həmkarları ilə müqayisədə necə daha yaxşı seçim olduğu.

Biz ilk əsas test skriptimizi yaratmaq üçün addım-addım yanaşmaya əməl etdik. Biz Eclipse IDE -də əsas Maven layihəsini yaratmaqla başladıq. Feature faylı yaratmaq üçün bütün sınaq ssenarisini və .feature faylında qeyd olunan test işini yerinə yetirmək üçün Runner faylını ehtiva edən .feature faylı yaratdıq.

Bir neçə addımın sonunda biz test nəticələrinin icra hesabatını görə bildik.

Ümid edirik ki, bu təlimat yeni başlayanlar üçün Karate Çərçivəsindən istifadə edərək ilk test skriptini necə qurmağı öyrənməyə kömək etdi. və API Testini həyata keçirin. Bu ətraflı addım-addımyanaşma API-də müxtəlif testləri işə salmaq və icra etmək üçün gözəl üsuldur.

NEXT>>

Li bunu boş vaxtlarında inkişaf etdirmişdi.

Biz Karatenin maraqlı köklərini araşdırmaq istəsək də, hələlik gəlin hazırlanmış Karate aləti haqqında danışaq. tərəfindən Peter Thomas , API sınayıcılarının köməyinə gələn əla vasitələrdən biridir.

Karate çərçivəsi BDD yanaşmasına uyğun olaraq proqramı yazmaq üçün Xiyar üslubunu izləyir. Sintaksisi proqramçı olmayanlar üçün başa düşmək asandır. Və bu çərçivə API Avtomatlaşdırma və performans testini vahid müstəqil alətdə birləşdirən yeganə API sınaq alətidir.

O, istifadəçilərə test nümunələrini Paralel olaraq icra etmək və JSON & XML yoxlanışı.

Bu məlumatla Karate alətini ətraflı başa düşmək üçün müəyyən əsas məqamları çıxarmaq olar:

  • Karate BDD test çərçivəsidir. bir TDD.
  • O, proqramçı olmayanlar üçün asan olması üçün nəzərdə tutulmuşdur. Bu xüsusiyyət oyun dəyişdiricidir, çünki texniki mənşəyindən və ya imkanlarından asılı olmayaraq bir çox insana daha çox istifadə və giriş imkanı verir.
  • O, testi yazmaq üçün Cucumber xüsusiyyət faylından və Gherkins dilindən istifadə edir. başa düşmək çox asandır.

Bütün bu xüsusiyyətlər onu bu gün mövcud olan ən əlverişli avtomatlaşdırma vasitələrindən birinə çevirir.

Karate Çərçivəsinin Tarixi

Yaradıcı '2017-ci ildə 1>Peter Thomas' , bu proqram test etməyi hədəfləyirfunksiyalar hər kəs üçün əlçatandır. O, Java-da yazılmışdır və insanların çoxu onun fayllarının da eyni dildə olmasını gözləyirdi, lakin xoşbəxtlikdən belə deyil.

Əksinə, o, Gherkins fayllarından istifadə edir ki, bu da Gherkins faylları ilə əlaqəsinin nəticəsidir. Xiyar çərçivəsi. Avtomatlaşdırma proqramı Xiyarın genişləndirilməsidir, buna görə də onun işində Gherkins faylının istifadəsini miras alır. İkisi arasında böyük fərq ondadır ki, Karate sınaq zamanı Java-dan istifadə etmir, lakin Xiyar edir.

Gherkins sintaksisi super oxunaqlı və hərtərəfli olduğundan onun proqramçı olmayanlara da müraciət etməsinin səbəbi budur. Buna görə Karate ən uyğun və avtomatlaşdırılmış API testi dünyasına daxil olmaq üçün tövsiyə olunur.

Aşağıda Karate Test Çərçivəsinin bəzi xüsusiyyətləri var:

  • Anlaşılan Gherkins dilindən istifadə edir.
  • O, Java kimi texniki proqramlaşdırma biliklərini tələb etmir.
  • O, məşhur Cucumber standartlarına əsaslanır.
  • Çərçivə yaratmaq asandır.
  • Paralel test Karatenin özü tərəfindən təmin edilən əsas funksionallıqdır, ona görə də biz Maven, Gradle və s.-dən asılı olmamalıyıq.
  • Testin sazlanması üçün UI.
  • Başqa fayldan xüsusiyyət faylının çağırılması.
  • Daxil edilmiş Data Driver Testi üçün dəstəyi təmin edir, buna görə də xarici çərçivələrdən asılı olmağa ehtiyac yoxdur.
  • Daxili Doğma İstirahətHesabatlar. Üstəlik, daha yaxşı UI Hesabatları və daha aydınlıq üçün o, Xiyar ilə inteqrasiya oluna bilər.
  • Müxtəlif sınaq mühitlərində (QA, Mərhələ, Məhsul, Pre-Məhsul) konfiqurasiyanın dəyişdirilməsi üçün daxili dəstək təmin edir.
  • Faydalı ola biləcək CI/CD inteqrasiyası üçün qüsursuz dəstək.
  • Müxtəlif HTTP zənglərini idarə edə bilir:
    • Veb Soket dəstəyi
    • SOAP sorğusu
    • HTTP
    • Brauzer kukilərinin idarə edilməsi
    • HTTPS
    • HTML-form datası
    • XML sorğusu

Karate ilə Əmin olunun müqayisəsi

Əmin olun : REST xidmətlərini sınaqdan keçirmək üçün Java əsaslı kitabxanadır. Kod sətirlərini yazmaq üçün Java dilindən istifadə edir. O, çoxsaylı sorğu kateqoriyalarının sınaqdan keçirilməsinə kömək edir və nəticədə müxtəlif biznes məntiqi birləşmələrinin yoxlanılması ilə nəticələnir.

Karate Framework : SOAP & REST xidmətləri.

Aşağıdakı cədvəldə Rest-Assured & Karate Çərçivəsi:

S.No Əsas Karate Çərçivəsi REST-Əmin olun
1 Dil Xiyar və Kornişon birləşməsindən istifadə edir Java Dilindən istifadə edir
2 Kod Ölçüsü Adətən, kod daha azdır, çünki o, Xiyar kimi quruluşa uyğundur Kod xətti daha çoxdur, çünki o,Java dilindən istifadə
3 Texniki biliklər tələb olunur Qeyri-Proqramçılar asanlıqla yaza bilər Gherkins kodu Java kodunu yazmaq üçün texniki bilik tələb olunur
4 Data-Driven Test Eynini dəstəkləmək üçün TestNG və ya ekvivalentindən istifadə etmək lazımdır Data testini dəstəkləmək üçün daxili teqlər istifadə edilə bilər
5 SOAP zəng dəstəyini təmin edirmi Bəli, təmin edir Bu, yalnız REST sorğusu ilə bağlıdır
6 Paralel Test Bəli, paralel hesabatın yaradılması ilə paralel test asanlıqla dəstəklənir çox Çox dərəcədə deyil. İnsanlar bunu etməyə çalışsalar da, uğursuzluq nisbəti müvəffəqiyyət nisbətindən daha yüksəkdir
7 Hesabat O, daxili hesabat təqdim edir, ona görə də xarici plaginlərdən asılı olmağa ehtiyac yoxdur. Hətta daha yaxşı UI üçün onu Cucumber hesabat plagininə inteqrasiya edə bilərik. Junit, TestNG kimi Xarici Pluginlərdən asılı olmalısınız
8 Xarici Məlumat üçün CSV dəstəyi Bəli, Karate 0.9.0-dan Xeyr, Java Kodu və ya kitabxanadan istifadə etməlisiniz
9 Veb UI Avtomatlaşdırılması Bəli, Karate 0.9.5-dən Web-UI Avtomatlaşdırılması mümkündür Xeyr, dəstəklənmir
10 Nümunə 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"));

Buna görə də, Yuxarıdakı fərqləri nəzərə alsaq, əminliklə demək olar ki, Karate hər kəsin edə biləcəyi ən asan işlərdən biridir.

Karate Çərçivəsi ilə İşləmək üçün Tələb olunan Alətlər

İndi biz bu haqda əsas biliklərimizi əldə etdik. Karate Çərçivəsinə gəlincə, gəlin Karate mühitinin qurulması üçün tələb olunan proseslərə və alətlərə nəzər salaq.

#1) Eclipse

Eclipse istifadə olunan İnteqrasiya edilmiş İnkişaf Mühitidir. kompüter proqramlaşdırması sahəsində. Daha çox Java Proqramlaşdırma üçün istifadə olunur. Daha əvvəl qeyd edildiyi kimi, Karate Java-da yazılmışdır, ona görə də Eclipse-in API test proqramı üçün əsas IDE olması daha məntiqlidir. Digər səbəb onun açıq mənbəli alət olmasıdır və bu aləti seçmək üçün kifayət qədər güclü səbəbdir.

Qeyd: Hətta IntelliJ, Visual Studio və digər müxtəlif proqramlardan istifadə edə bilərik. bazarda mövcud olan redaktorlar.

#2) Maven

Bu, əsasən Java layihələrinin qurulması üçün istifadə edilən qurma avtomatlaşdırma alətidir. Bu, Karate mühiti yaratmağın və kodu yazmağın bir yoludur. Eclipse ilə Maven tələblərini qurmaq üçün Maven quraşdırılması üçün buraya klikləyə bilərsiniz.

Mavendə işləyərkən Karate Framework-ü dəstəkləyəcək Maven asılılıqlarından istifadə edin.

Aşağıdakılar asılılıqlar pom.xml-də Maven ilə istifadə olunacaq.

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

Qeyd: Ən son versiyalar ola bilərMaven repozitoriyada mövcud ola bilər.

#3) Gradle

Gradle Maven-ə alternativdir və bərabər tutumda istifadə edilə bilər. Onların oxşarlıqları və fərqləri var, lakin Karate kodları üçün mühit yaratmaqda eyni dərəcədə istifadə oluna bilər.

İstifadəsi daha asandır, çevikdir və tətbiqimizin bəzi modullaşdırma və idarəetmə tələbləri olduqda istifadə etmək tövsiyə olunur. bir dəstə plug-in. Gradle quraşdırma kodu bu kimi görünür,

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

Qeyd: Siz ya MAVEN , ya da GRADLE-dən istifadə edə bilərsiniz.

#4) Sisteminizdə Java Mühitinin qurulması

Karate Framework skriptləri ilə işə başlamaq üçün JDK və JRE mühitini quraşdırmaq lazımdır.

Karate Test Skriptinin Strukturu

Karate test skripti “.feature” genişlənməsinə malik olması ilə tanınır. Bu əmlak Xiyardan miras qalmışdır. Java konvensiyasında faylların təşkilinə də eyni dərəcədə icazə verilir. Fayllarınızı Java paketi konvensiyalarına uyğun təşkil etməkdə sərbəstsiniz.

Lakin Maven təlimatları Java olmayan faylların saxlanmasının ayrıca həyata keçirilməsini göstəriş verir. Onlar src/test/resources strukturunda edilir. Java faylları isə src/main/java altında saxlanılır.

Lakin Karate Çərçivəsinin yaradıcılarına görə, onlar qəti şəkildə inanırlar ki, biz həm Java, həm də qeyri-Java fayllarını yan-yana saxlayırıq. yan. Onlara görə, onları axtarmaq daha asandır*.java və *.feature faylları standart Maven strukturuna riayət etmək əvəzinə bir yerdə saxlandıqda.

Bu, pom.xml-ni aşağıdakı kimi tənzimləməklə asanlıqla edilə bilər (Maven üçün):

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

Aşağıda Karate Çərçivəsinin ümumi strukturunun konturları verilmişdir:

İndi, çünki bu Karate Çərçivəsi istifadə edir Xüsusiyyət fayllarını işə salmaq üçün Xiyarda da lazım olan Runner faylı, ona görə də yazıların əksəriyyəti Xiyar standartlarına uyğun olacaq.

Lakin Xiyardan fərqli olaraq, addımlar Karatedə aydın tərif tələb etmir və hansı , öz növbəsində, çevikliyi və əməliyyatların asanlığını artırır. Xiyar çərçivəsinə əməl edərkən adətən əlavə etməli olduğumuz əlavə yapışqan əlavə etməyə ehtiyac yoxdur.

“Runner” sinfi çox vaxt TestRunner.java adlanır.

Sonra TestRunner.java faylı aşağıdakı formanı alacaq:

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

.feature faylı haqqında danışsaq, o, bütün testləri ehtiva edir. API-nin gözlənilən tələblərə uyğun işlədiyinə əmin olmaq üçün sınaqdan keçirilməli olan ssenarilər.

Ümumi *.feature faylı aşağıda göstərildiyi kimi görünür:

 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

İlk Əsas Karate Test Skriptinin Yaradılması

Bu bölmə API-ləri Karate çərçivəsi şəklində çevirmək üçün sizə kömək edəcək ilk Test Skriptinizi yaratmağa başlamağa kömək edəcək.

Əsas Karate test skriptlərini yazmadan əvvəl,zəhmət olmasa aşağıdakı rekvizitləri maşınınıza quraşdırın:

  • Eclipse IDE
  • Maven. Müvafiq Maven yolunu təyin edin.
  • JDK & JRE. Müvafiq yolu təyin edin.

Gəlin addım-addım yanaşmaya nəzər salaq:

#1) yeni MAVEN Eclipse Redaktorunda Layihə

  • Eclipse-i açın
  • Fayl üzərinə klikləyin. Yeni Layihə seçin.

  • Maven Layihəsini seçin

  • Seçin İş sahəsinin yerini seçin.
  • Arxetipi seçin (adətən biz sadə Maven layihələri üçün “ Maven-archetype-quickstart 1.1 ” seçirik).
  • Təmin edin Qrup ID & amp; Artifact ID (biz nümunəmizdə aşağıdakı dəyərlərdən istifadə etdik).
    • Qrup ID : Karate
    • Artifakt ID: KarateTestScriptsSample
  • Tamamlamaq üçün Bitir üzərinə klikləyin quraşdırma.

#2) Yaradılandan sonra indi Project Explorer pəncərəsində aşağıdakı strukturu görə biləcəksiniz.

#3) Bütün Asılılıqlarınızı daxil edin.

Bizim ilk addımımız, quraşdırmadan sonra biz bütün asılılıqları daxil edəcəyik ki, bu da tələb olunacaq icrası üçün. Biz bütün teqi POM.xml altında saxlayacağıq (Fərz edək ki, siz artıq POM.xml istifadəsindən xəbərdarsınız).

  • POM.xml-ni açın və aşağıdakı kodu asılılıq teqinin altında kopyalayın və fayl.
  com.intuit.karate karate-apache 0.9.5 test   com.intuit.karate karate-junit4 0.9.5 test 

Mənbə üçün buraya klikləyin.

#4) Gəlin ssenari üzərində beyin fırtınası edək, nəyi sınayacağıq

Yuxarıya keç