Acest tutorial este o introducere în testarea API folosind Karate Framework. Aflați despre structura scriptului de testare Karate și pașii pentru a construi primul script de testare:

API este un acronim care înseamnă Application Programming Interface (interfață de programare a aplicațiilor). În termeni simpli, o putem defini ca fiind un intermediar software care permite comunicarea între aplicații.

Avem nevoie de testarea API pentru că:

  • Rezultatele sunt publicate mai repede, deci nu mai trebuie să așteptați să vedeți dacă API-ul funcționează bine.
  • Datorită răspunsului mai rapid, implementarea acestor API-uri devine, de asemenea, mai rapidă, permițând astfel un timp de răspuns rapid.
  • Detectarea timpurie a defecțiunilor, chiar înainte de a fi creată interfața de utilizare a aplicației, ne permite să reducem riscurile și să corectăm defecțiunile.
  • Livrare pe scară largă posibilă într-o perioadă mai scurtă.

Pentru a putea lucra la testarea API, avem diverse instrumente disponibile pe piață, cum ar fi Postman, Mocha și Chai. Acestea au demonstrat rezultate bune și o utilizare eficientă pentru testarea API-urilor, însă sunt puternic influențate de cod. Pentru a le putea utiliza, trebuie să aveți cunoștințe tehnice solide și să fiți familiarizați cu limbajele de programare.

Karate Framework rezolvă în mod minunat această problemă a instrumentelor software precedente.

Ce este Karate Framework

Karate? Să vorbim despre Karate. Este cel din Japonia? Ce crezi? Poate că marele Bruce Lee l-a dezvoltat în timpul liber.

Deși am dori să aprofundăm rădăcinile interesante ale Karate-ului, deocamdată, să vorbim despre Instrument de karate care a fost dezvoltat de Peter Thomas , unul dintre marile instrumente care vin în ajutorul testerilor API.

Cadrul Karate urmează stilul Cucumber de scriere a programului care urmează abordarea BDD. Sintaxa este ușor de înțeles de către neprogramatori. Iar acest cadru este singurul instrument de testare API care a combinat automatizarea API și testarea performanței într-un singur instrument independent.

Acesta oferă utilizatorilor posibilitatea de a executa cazurile de testare în paralel și de a efectua verificări JSON & XML.

Cu aceste informații, se pot deduce anumite puncte cheie pentru a înțelege mai bine instrumentul Karate în detaliu:

  • Karate este un cadru de testare BDD în loc de TDD.
  • Această caracteristică schimbă regulile jocului, deoarece permite utilizarea și accesul mai multor persoane, indiferent de pregătirea sau capacitatea lor tehnică.
  • Acesta utilizează fișierul de caracteristici Cucumber și limbajul Gherkins pentru a scrie testul care este foarte ușor de înțeles.

Toate aceste caracteristici îl fac unul dintre cele mai favorabile instrumente de automatizare disponibile în prezent.

Istoria cadrului de Karate

Creat de ' Peter Thomas' în 2017, acest software își propune să facă funcționalitățile de testare ușor accesibile tuturor. A fost scris în Java și majoritatea oamenilor se așteptau ca și fișierele sale să fie în același limbaj, însă, din fericire, nu este cazul.

Mai degrabă, utilizează fișiere Gherkins, care este rezultatul relației sale cu cadrul Cucumber. Software-ul de automatizare este o extensie a Cucumber, prin urmare moștenește utilizarea fișierului Gherkins în funcționarea sa. Marea diferență dintre cele două este că Karate nu utilizează Java în timpul testării, dar Cucumber o face.

Acesta este chiar motivul pentru care se adresează celor care nu sunt programatori, deoarece sintaxa Gherkins este foarte ușor de citit și cuprinzătoare. Acesta este motivul pentru care Karate este cel mai potrivit și recomandat pentru a intra în lumea testării automate a API-urilor.

În continuare sunt prezentate câteva caracteristici ale cadrului de testare Karate:

  • Folosește un limbaj Gherkins ușor de înțeles.
  • Nu necesită cunoștințe tehnice de programare, cum ar fi Java.
  • Acesta se bazează pe standardele populare Cucumber.
  • Ușor de creat un cadru.
  • Testarea paralelă este o funcționalitate de bază care este furnizată de Karate însuși, prin urmare, nu trebuie să depindem de Maven, Gradle , etc.
  • UI pentru de depanare a testului.
  • Apelarea unui fișier de caracteristici dintr-un alt fișier.
  • Oferă suport pentru testarea driverului de date, care este construit în cadrul companiei, prin urmare nu este nevoie să depindă de cadre externe.
  • Built-in Native Rest Reports. În plus, poate fi integrat cu Cucumber pentru o mai bună interfață de utilizare a rapoartelor și mai multă claritate.
  • Oferă asistență internă pentru configurația de comutare în diferite medii de testare (QA, Stage, Prod, Pre-Prod).
  • Suport fără probleme pentru integrarea CI/CD, care poate fi utilă.
  • Capabil să gestioneze diverse apeluri HTTP:
    • Suport Web Socket
    • Cerere SOAP
    • HTTP
    • Manipularea cookie-urilor din browser
    • HTTPS
    • Date din formularul HTML
    • Cerere XML

Comparație între Karate Vs Rest-Assigurat

Odihnă asigurată : Este o bibliotecă bazată pe Java pentru testarea serviciilor REST. Folosește limbajul Java pentru scrierea liniilor de cod. Ajută la testarea a numeroase categorii de cereri, ceea ce duce mai departe la verificarea diferitelor combinații logice de afaceri.

Cadrul Karate : Un instrument bazat pe Cucumber/Gherkins, utilizat pentru testarea serviciilor SOAP & REST.

Tabelul următor enumeră câteva diferențe mai importante între Rest-Assured & Karate Framework:

S.Nr. Baza Cadrul Karate REST-Assigurat
1 Limba Folosește o combinație de castraveți și castraveți. Se utilizează limbajul Java
2 Cod Dimensiune De obicei, linia de cod este mai mică, deoarece urmează o structură de tip Cucumber Linia de cod este mai mare, deoarece implică utilizarea limbajului Java.
3 Cunoștințe tehnice necesare Cei care nu sunt programatori pot scrie cu ușurință codul Gherkins Sunt necesare cunoștințe tehnice pentru a scrie cod Java
4 Testarea bazată pe date Necesitatea de a utiliza TestNG sau echivalent pentru a susține același lucru Etichetele interne pot fi utilizate pentru a sprijini testarea datelor
5 Oferă suport pentru apeluri SOAP Da, oferă Se referă doar la o cerere REST
6 Testare paralelă Da, testarea paralelă este ușor de suportat și cu generarea de rapoarte paralele. Nu într-o mare măsură. Deși oamenii au încercat să facă acest lucru, rata de eșec este mai mare decât rata de succes.
7 Raportarea Oferă raportare internă, prin urmare, nu trebuie să depindă de plugin-uri externe. Putem chiar să-l integrăm cu plugin-ul de raportare Cucumber pentru o interfață mai bună. Trebuie să depindă de plugin-uri externe precum Junit, TestNG
8 Suport CSV pentru date externe Da, din Karate 0.9.0 Nu, trebuie să utilizați codul sau biblioteca Java
9 Automatizarea interfeței web Da, de la Karate 0.9.5 Web-UI Automation este posibil. Nu, nu este suportat
10 Exemplu GET Dat param val1 = 'nume1'

Și param val2 = 'nume2'

Și calea de acces "somelocation

Când metoda obține

Atunci răspunsul de potrivire conține "OKAY

dat().

param("val1", "nume1").

param("val2", "nume2").

când().

get("/some\location").

apoi().

body(containsString("OKAY"));

Prin urmare, după cum demonstrează diferențele de mai sus, se poate spune că Karate este unul dintre cele mai ușoare lucruri pe care oricine le poate face.

Instrumente necesare pentru a lucra cu Karate Framework

Acum, din moment ce ne-am însușit cunoștințele de bază despre Karate Framework, haideți să analizăm procesele și instrumentele necesare pentru configurarea mediului Karate.

#1) Eclipsa

Eclipse este un mediu de dezvoltare integrat utilizat în domeniul programării pe calculator. Este folosit în principal pentru programarea Java. După cum am menționat mai devreme, Karate este scris în Java, deci este mai logic de ce Eclipse este IDE-ul preferat pentru software-ul de testare API. Un alt motiv este că este un instrument open-source, iar acesta este un motiv destul de puternic pentru a opta pentru acest instrument.

Notă: Am putea chiar să folosim IntelliJ, Visual Studio și alte editoare diferite disponibile pe piață.

#2) Maven

Acesta este un instrument de automatizare a construcției utilizat în principal pentru construirea proiectelor Java. Este o modalitate de a configura un mediu Karate și de a scrie codul. Pentru a configura Eclipse cu cerințele Maven, puteți face clic aici pentru instalarea Maven.

În timp ce lucrați în Maven, utilizați dependențele Maven care vă vor ajuta să sprijiniți Karate Framework.

Următoarele dependențe vor fi utilizate cu Maven în pom.xml.

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

Notă: Cele mai recente versiuni ar putea fi disponibile în depozitul Maven.

#3) Gradle

Gradle este o alternativă la Maven și poate fi folosit în egală măsură. Au asemănările și diferențele lor, dar pot fi folosite în egală măsură în configurarea unui mediu pentru codurile noastre Karate.

Este mai ușor de utilizat, flexibil și este recomandat să îl folosim atunci când aplicația noastră are anumite cerințe de modularizare și gestionare cu o mulțime de plug-in-uri. Codul de configurare Gradle ar arăta cam așa,

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

Notă: Puteți folosi fie MAVEN sau GRADUL.

#4) Configurarea mediului Java în sistemul dvs.

Trebuie să configurați mediul JDK și JRE pentru a începe să utilizați scripturile Karate Framework.

Structura testului Karate Script

Un script de test Karate este cunoscut pentru posesia extensiei ".feature". Această proprietate este moștenită de la Cucumber. Organizarea fișierelor în convenția Java este de asemenea la fel de permisă. Sunteți liber să vă organizați fișierele în conformitate cu convențiile pachetelor Java.

Cu toate acestea, ghidurile Maven indică faptul că stocarea fișierelor non-Java trebuie făcută separat. Acestea sunt stocate într-un fișier src/test/resurse Iar fișierele Java sunt păstrate în structura src/main/java .

Dar, conform creatorilor Karate Framework, ei cred cu tărie că ar trebui să păstrăm atât fișierele Java, cât și cele non-Java, una lângă alta. Conform acestora, este mult mai ușor să căutăm fișierele *.java și *.feature atunci când acestea sunt păstrate împreună, mai degrabă decât să urmăm structura standard Maven.

Acest lucru poate fi realizat cu ușurință prin modificarea pom.xml după cum urmează (pentru Maven):

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

În cele ce urmează este prezentată structura generală a Cadrului Karate:

Acum, din moment ce acest cadru Karate Framework folosește fișierul Runner, care este de asemenea necesar în Cucumber pentru a rula fișierele de caracteristici, astfel încât cea mai mare parte a scrierii va urma standardele Cucumber.

Dar, spre deosebire de Cucumber, pașii nu necesită o definiție clară în Karate și care, la rândul lor, sporesc flexibilitatea și ușurința operațiunilor. Nu trebuie să adăugăm lipiciul suplimentar pe care trebuie să-l adăugăm de obicei atunci când urmăm cadrul Cucumber.

Clasa "Runner" este de cele mai multe ori numită TestRunner.java.

Apoi, fișierul TestRunner.java va avea forma:

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

Și vorbind despre .feature conține toate scenariile de testare care trebuie testate pentru a ne asigura că API-ul funcționează conform cerințelor preconizate.

Un fișier general *.feature are un aspect asemănător cu cel prezentat mai jos:

 Funcționalitate: preluarea detaliilor utilizatorului Scenariu: testarea apelului get pentru detaliile utilizatorului Dată url '//reqres.in/api/users/2' Când metoda GET Atunci status 200 

Crearea primului script de bază pentru testul Karate

Această secțiune vă va ajuta să începeți să creați primul Script de testare, care vă va fi util pentru a converti API-uri sub forma unui cadru Karate.

Înainte de a scrie scripturile de test Karate de bază, vă rugăm să instalați următoarele cerințe pe calculatorul dumneavoastră:

  • IDE Eclipse
  • Maven. Setați calea Maven corespunzătoare.
  • JDK & JRE. Setați calea corespunzătoare.

Să aruncăm o privire la abordarea pas cu pas:

#1) Creați un nou MAVEN Proiect în editorul Eclipse

  • Deschideți Eclipse
  • Faceți clic pe File (Fișier). Selectați New Project (Proiect nou).

  • Selectați Proiectul Maven

  • Alegeți locația spațiului de lucru.
  • Selectați Arhetipul (de obicei alegem " Maven-archetype-quickstart 1.1 " pentru proiecte Maven simple).
  • Furnizați ID-ul grupului & ID-ul artefactului (în exemplul nostru am utilizat următoarele valori).
    • ID-ul grupului : Karate
    • ID-ul artefactului: KarateTestScriptsSample
  • Faceți clic pe Finish (Terminare) pentru a finaliza configurarea.

#2) După ce a fost creat, acum veți putea vedea următoarea structură în fereastra Project Explorer.

#3) Includeți toate dependențele.

Primul nostru pas, după configurare, va fi să include toate dependențele care vor fi necesare pentru execuție. Vom păstra toate etichetele în POM.xml (presupunând că sunteți deja la curent cu utilizarea POM.xml).

  • Deschideți POM.xml și copiați codul de mai jos sub eticheta de dependență și salvați fișierul.
 com.intuit.karate karate-apache 0.9.5 test com.intuit.karate karate karate-junit4 0.9.5 test 

Click aici pentru sursa.

#4) Să ne gândim la scenariu, ce vom testa în acest script de testare Karate Basic Test Script.

Scenariu:

Vom testa un API cu acest URL.

Calea: api/utilizatori/2

Metoda: GET

Și trebuie să validăm , dacă cererea returnează un Cod de succes (200) sau nu.

În termeni simpli, vom testa un exemplu de API pentru a vedea dacă este sau nu executat cu succes.

Notă: Luăm un eșantion de API care este disponibil pentru testare. Puteți alege orice PATH sau puteți face referire la API-ul dumneavoastră.

Click aici pentru sursa.

#5) Acum, următorul pas ar fi să creăm un fișier .feature dosar.

După cum s-a discutat în secțiunea de introducere, în .feature fișier este proprietatea care a fost moștenită de la Cucumber. În acest fișier, vom scrie scenariile de testare care trebuie executate pentru a efectua testarea API.

  • Du-te la dosar src/test/java în proiectul dumneavoastră.

  • Faceți clic dreapta pe el și creați un fișier nou - userDetails.feature. Apoi faceți clic pe butonul Finish (Finalizare).

Acum veți vedea următorul fișier în folderul respectiv src/test/java

The Pictograma de culoare verde seamănă cu .feature fi le în Cucumber pe care tocmai l-am creat.

  • După ce fișierul a fost creat, acum vom scrie scenariile de testare care vor fi discutate în secțiunea următoare.

#6) Din moment ce avem scenariul și golul . caracteristică gata, acum să începem cu primul nostru script. Să începem să codificăm

Scrieți următoarea linie de cod în fișierul userDetails.feature pe care l-am creat la pasul 5:

 Funcționalitate: preluarea detaliilor utilizatorului Scenariu: testarea apelului get pentru detaliile utilizatorului Dată url '//reqres.in/api/users/2' Când metoda GET Atunci status 200 

Să încercăm să înțelegem componentele care sunt scrise în fișierul de mai sus:

  • Caracteristică: Cuvântul cheie explică numele funcției pe care o testăm.
  • Context: Aceasta este o secțiune opțională care este tratată ca o secțiune de condiții prealabile. Poate fi utilizată pentru a defini tot ceea ce este necesar pentru a testa API. Aceasta conține HEADER, URL & PARAM opțiuni.
  • Scenariu: Fiecare fișier de caracteristici pe care îl veți vedea va avea cel puțin o caracteristică (deși poate da mai multe Este descrierea cazului de testare.
  • Dată: Este etapa care trebuie executată înainte de a se efectua orice altă etapă de testare. Este o acțiune obligatorie care trebuie efectuată.
  • Când: Aceasta specifică condiția care trebuie îndeplinită pentru a efectua următoarea etapă de testare.
  • Apoi: Acesta ne spune ce ar trebui să se întâmple în cazul în care condiția menționată în Când este satisfăcută.

Notă: Toate cuvintele cheie menționate mai sus sunt din limbajul Gherkins. Acestea reprezintă modul standard de scriere a scripturilor de testare folosind Cucumber.

Și alte câteva cuvinte folosite în fișierul cu caracteristici sunt:

  • 200: Acesta este codul de stare/răspuns pe care îl așteptăm (Faceți clic aici pentru lista codurilor de stare).
  • GET: Este metoda API, cum ar fi POST, PUT, etc.

Sperăm că această explicație a fost ușor de înțeles pentru dvs. Acum veți putea să vă raportați la ceea ce este scris exact în fișierul de mai sus.

Acum trebuie să creăm un fișier TestRunner.java

După cum s-a explicat în secțiunea de mai sus, Cucumber are nevoie de un fișier Runner care ar fi necesar pentru a executa .feature care conține scenariile de testare.

  • Du-te la dosar src/test/java în proiectul dumneavoastră

  • Faceți clic dreapta pe el și creați un fișier Java nou: TestRunner.java
  • După ce fișierul a fost creat, puneți următoarele linii de cod sub el:
 import org.junit.runner.RunWith; import com.intuit.karate.junit4.Karate; @RunWith(Karate.class) public class TestRunner { } 
  • Test Runner este fișierul care va fi executat acum pentru a realiza scenariul dorit care a fost scris la pasul 5.

#7) Acum suntem gata cu ambele fișiere TestRunner.Java și userDeatils.feature. Singura sarcină care ne rămâne este să Rulați scenariul.

  • Mergeți la fișierul TestRunner.java și faceți clic dreapta pe fișier, așa cum se arată în imaginea de mai jos.

  • Alegeți Run As -> Junit Test
  • Acum, odată selectat, veți începe să observați că testul a început.
  • Așteptați ca scriptul de testare să se execute. Odată executat, veți observa în fereastra dvs. ceva asemănător cu ceea ce se arată în imaginea de mai jos.

  • În cele din urmă, putem spune că am reușit să creăm cu succes primul nostru program de bază. Script de testare folosind Karate Framework.

#8) În cele din urmă, cadrul Karate oferă, de asemenea, o prezentare a raportului HTML pentru execuția care a fost efectuată.

  • Mergeți la Target Folder -> surefire-reports-> Aici veți vedea raportul HTML pe care îl puteți deschide.

** Vă sugerăm, de asemenea, să deschideți același lucru folosind browserul Chrome pentru un aspect mai bun.

  • Următorul raport HTML vă va fi afișat și va descrie Scenarii & Test care a fost executat pentru scenariul menționat:

Concluzie

În acest tutorial, am discutat despre testarea API, despre diferite instrumente de testare disponibile pe piață și despre modul în care Karate Framework este o opțiune mai bună în comparație cu omologii săi.

Am urmat o abordare pas cu pas pentru a crea primul nostru script de testare de bază. Am început prin a crea un script de bază de tip Proiect Maven în Eclipse IDE pentru a crea un fișier .feature, care conține toate scenariile de testare și un fișier Runner pentru a executa cazul de testare menționat în fișierul .feature.

La sfârșitul etapelor multiple, am putut vedea raportul de execuție a rezultatelor testului.

Sperăm că acest tutorial a fost de ajutor pentru începători în a învăța cum să construiască primul lor script de testare folosind Karate Framework și să efectueze testarea API. Această abordare detaliată pas cu pas este o modalitate minunată de a rula și de a executa diverse teste pe API.

NEXT>>

Derulați în sus