karate framework tutorial
Acest tutorial este o introducere la testarea API folosind Karate Framework. Aflați despre structura Scriptului de testare Karate și pașii necesari pentru a construi primul script de testare:
API este un acronim care înseamnă Application Programming Interface. În termeni simpli, îl putem defini ca un intermediar software care permite comunicarea între aplicații.
Avem nevoie de testare API deoarece:
- Rezultatele sunt publicate mai repede, prin urmare nu mai așteaptă să vedem dacă API-ul funcționează bine.
- Cu un răspuns mai rapid, implementarea acestor API-uri devine, de asemenea, mai rapidă, prin urmare permite un timp de răspuns rapid.
- Detectarea timpurie a eșecurilor, chiar înainte de crearea interfeței de utilizare a aplicației, ne permite să diminuăm 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, cu toate acestea, acestea sunt puternic influențate de cod. Pentru a fi capabili să le utilizați, trebuie să fiți tehnic sănătos și familiarizat cu limbajele de programare.
Karate Framework rezolvă frumos această problemă a instrumentelor sale software precedente.
Ce veți învăța:
Ce este Karate Framework
Karate? Să vorbim despre karate. Este cel din Japonia? Ce crezi? S-ar putea ca marele Bruce Lee să fi dezvoltat acest lucru î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 instrumentele grozave care vin în ajutorul testerilor API.
Cadrul de karate urmează stilul Cucumber de a scrie programul care urmează abordarea BDD. Sintaxa este ușor de înțeles de către non-programatori. Și acest cadru este singurul instrument de testare API care a combinat automatizarea API și testarea performanței într-un singur instrument independent.
Oferă utilizatorilor posibilitatea de a executa cazurile de testare în paralel și de a efectua verificările JSON și XML.
Cu aceste informații, pot fi deduse anumite puncte cheie pentru a înțelege în detaliu instrumentul Karate în detaliu:
- Karate este un cadru de testare BDD în loc de TDD.
- Este proiectat pentru a fi ușor pentru non-programatori. Această caracteristică este un schimbător de jocuri, deoarece permite mai multă utilizare și acces de către mulți oameni, indiferent de experiența sau capacitatea lor tehnică.
- Folosește fișierul cu caracteristici Castravete ș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 astăzi.
Istoria cadrului de karate
Creat de ' Lui Peter Thomas în 2017, acest software își propune să pună la dispoziția tuturor funcționalitățile de testare. A fost scris în Java și majoritatea oamenilor se așteptau ca fișierele sale să fie și în același limbaj, totuși, din fericire, nu este cazul.
Mai degrabă, folosește 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 folosește Java în timpul testării, dar Castravete.
Acesta este chiar motivul pentru care se adresează non-programatorilor, deoarece sintaxa Gherkins este foarte lizibilă și cuprinzătoare. Acesta este motivul pentru care Karate este cel mai potrivit și recomandat pentru a face o intrare în lumea testării automate API.
Următoarele sunt câteva caracteristici ale Karate Testing Framework:
- Folosește un limbaj Gherkins ușor de înțeles.
- Nu necesită cunoștințe tehnice de programare precum Java.
- Se bazează pe standardele populare de Castravete.
- Ușor de creat un cadru.
- Testarea în paralel este funcționalitatea de bază oferită de Karate în sine, de aceea nu trebuie să depindem Maven, Gradle , etc.
- IU pentru depanarea testului.
- Apelarea unui fișier caracteristică dintr-un alt fișier.
- Oferă suport pentru testarea driverelor de date care este construită intern, prin urmare nu este nevoie să depindeți de cadrele externe.
- Rapoarte de odihnă nativă încorporate. În plus, poate fi integrat cu Castravete pentru rapoarte UI mai bune și mai multă claritate.
- Oferă suport intern pentru comutarea configurației în diferite medii de testare (QA, Stage, Prod, Pre-Prod).
- Suport perfect pentru integrarea CI / CD care poate fi util.
- Capabil să gestioneze diverse apeluri HTTP:
- Suport Web Socket
- Cerere SOAP
- HTTP
- Manevrarea cookie-urilor din browser
- HTTPS
- Date în format HTML
- Solicitare XML
Compararea Karate Vs odihnă
Fiți siguri : Este o bibliotecă bazată pe Java pentru a testa serviciile REST. Folosește limbajul Java pentru scrierea liniilor de cod. Ajută la testarea numeroaselor categorii de solicitări, ceea ce duce la verificarea diferitelor combinații logice de afaceri.
Cadrul Karate : Un instrument pe bază de Castravete / Castraveți, folosit pentru testarea serviciilor SOAP & REST.
Următorul tabel înregistrează câteva diferențe mai importante între Rest-Assured și Karate Framework:
S. Nu | Bază | Cadrul Karate | Fiți siguri |
---|---|---|---|
7 | Raportare | Oferă raportare internă, prin urmare nu trebuie să fie dependent de pluginuri externe. Îl putem integra chiar și cu pluginul de raportare Cucumber pentru o mai bună interfață de utilizare. | Trebuie să depindeți de pluginuri externe precum Junit, TestNG |
unu | Limba | Folosește o combinație de Castravete și Castraveți | Folosește limbajul Java |
Două | Dimensiunea codului | De obicei, linia de cod este mai mică, deoarece urmează o structură asemănătoare cu Castravetele | Linia de cod este mai mult, deoarece implică utilizarea limbajului Java |
3 | Cunoștințe tehnice necesare | Non-programatorii pot scrie cu ușurință codul Gherkins | Sunt necesare cunoștințe tehnice pentru a scrie cod Java |
4 | Testare bazată pe date | Trebuie să folosiți TestNG sau echivalent pentru a le susține | Etichetele interne pot fi utilizate pentru a sprijini testarea datelor |
5 | Oferă suport pentru apel SOAP | Da, oferă | Este legat doar de o cerere REST |
6 | Testare paralelă | Da, testarea paralelă este ușor acceptată ș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 |
8 | Suport CSV pentru date externe | Da, de la Karate 0.9.0 | Nu, trebuie să utilizați codul Java sau biblioteca |
9 | Automatizare UI Web | Da, din Karate 0.9.5 Web-UI Automation este posibilă | Nu, nu este acceptat |
10 | Exemplu GET | Given param val1 = ‘name1’ | given(). |
Prin urmare, după cum demonstrează diferențele de mai sus, este sigur să spunem că Karate este unul dintre cele mai ușoare lucruri pe care le poate face oricine.
Instrumente necesare pentru lucrul cu Karate Framework
Acum, deoarece avem cunoștințele noastre de bază despre Karate Framework la punct, să ne uităm la procesele și instrumentele necesare în configurarea mediului Karate.
# 1) Eclipsă
Eclipse este un mediu de dezvoltare integrat utilizat în domeniul programării computerizate. Este folosit mai ales pentru programarea Java. Așa cum am menționat mai devreme, Karate este scris în Java, deci are mai mult sens de ce Eclipse este IDE-ul pentru software-ul de testare API. Un alt motiv este că este un instrument open-source și acesta este un motiv destul de puternic pentru a opta pentru acest instrument.
Notă: Am putea folosi chiar și IntelliJ, Visual Studio și alți editori diferiți disponibili pe piață.
# 2) Maven
Acesta este un instrument de automatizare a construcțiilor utilizat în principal pentru construirea de proiecte Java. Este o modalitate de a crea 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țe Maven care vă vor ajuta să susțineț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-junit4 0.9.5 test
Notă: Cele mai recente versiuni ar putea fi disponibile în depozitul Maven.
serverul privat vanilla world of warcraft
# 3) Gradle
Gradle este o alternativă la Maven și poate fi utilizat în capacitate egală. Au asemănările și diferențele lor, dar pot fi utilizate în mod egal în crearea unui mediu pentru codurile noastre de karate.
Este mai ușor de utilizat, flexibil și se recomandă utilizarea atunci când aplicația noastră are unele cerințe de modularizare și gestionare cu o grămadă 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 MAVEN sau GRADLE.
# 4) Configurarea mediului Java în sistemul dvs.
Trebuie să configurați mediul JDK și JRE pentru a începe cu scripturile Karate Framework.
Structura testului de test de karate
Un script de test Karate este cunoscut pentru posesia extensiei „.feature”. Această proprietate este moștenită de la Castravete. Organizarea fișierelor în convenția Java este, de asemenea, permisă la fel. Sunteți liber să vă organizați fișierele în conformitate cu convențiile pachetului Java.
Cu toate acestea, liniile directoare Maven instruiesc ca stocarea fișierelor non-Java să se facă separat. Se fac într-un src / test / resurse structura. Și fișierele Java sunt păstrate sub src / main / java .
Dar, conform creatorilor Karate Framework, ei cred cu tărie că păstrăm fișierele Java și non-Java una lângă alta. Conform acestora, este mult mai ușor să căutați fișierele * .java și * .feature atunci când sunt păstrate împreună, mai degrabă decât să urmați structura standard Maven.
Acest lucru se poate face cu ușurință prin modificarea pom.xml după cum urmează (pentru Maven):
src/test/java **/*.java ...
Urmează schița structurii generale a Karate Framework:
Acum, deoarece acest 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 scrisului va urma standardele Cucumber.
Dar, spre deosebire de Castravete, 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 este nevoie să adăugăm adezivul suplimentar pe care trebuie să-l adăugăm de obicei atunci când urmăm cadrul pentru Castravete.
Clasa „Runner” este denumită de cele mai multe ori TestRunner.java.
Apoi, fișierul TestRunner.java va lua forma:
import com.intuit.karate.junit4.Karate; import org.junit.runner.RunWith; @RunWith(Karate.class) public class TestRunner { }
Și vorbind despre .caracteristică fișier, conține toate scenariile de testare care trebuie testate pentru a vă asigura că API-ul funcționează conform cerințelor așteptate.
Un fișier general * .feature arată așa cum se arată mai jos:
alternativă gratuită la QuickBooks pentru întreprinderi mici
Feature: fetching User Details Scenario: testing the get call for User Details Given url 'https://reqres.in/api/users/2' When method GET Then status 200
Crearea primului script de test Karate de bază
Această secțiune vă va ajuta să începeți cu crearea primului dvs. script de testare, care vă va fi de ajutor pentru a converti API-urile 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 computer:
- Eclipse IDE
- Maven. Setați calea Maven corespunzătoare.
- JDK și JRE. Setați calea corespunzătoare.
Să aruncăm o privire la abordarea pas cu pas:
# 1) Creaza un nou MAVEN Proiect în Eclipse Editor
- Deschide Eclipse
- Faceți clic pe Fișier. Selectați Proiect nou.
- Selectați Maven Project
- Alegeți locația Spațiului de lucru.
- Selectați arhetipul (de obicei alegem „ Maven-archetype-quickstart 1.1 ”Pentru proiecte simple Maven).
- Furnizați ID-ul grupului și ID-ul artefactului (am folosit următoarele valori în exemplul nostru).
- ID grup : Karate
- ID-ul artefactului: KarateTestScriptsSample
- Faceți clic pe Finalizare pentru a finaliza configurarea.
#Două) Odată creat, acum veți putea vedea următoarea structură în fereastra Project Explorer.
# 3) Includeți toate dependențele.
Primul nostru pas, după configurare, vom fi include toate dependențele care va fi necesar pentru executare. Vom păstra toate etichetele sub 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-junit4 0.9.5 test
Clic Aici pentru sursă.
# 4) Să analizăm scenariul, ce vom testa în acest script de test de bază Karate.
Scenariu:
Vom testa un API cu acest lucru URL.
Cale: api / utilizatori / 2
Metodă: OBȚINE
Și trebuie să validăm , dacă solicitarea returnează un Cod de succes (200) sau nu.
În termeni simpli, vom testa doar un exemplu de API pentru a vedea dacă se execută sau nu cu succes.
Notă: Luăm un exemplu de API disponibil pentru testare. Puteți alege orice cale sau puteți face referire la API-ul dvs.
Clic Aici pentru sursă.
# 5) Acum următorul nostru pas ar fi să creăm un .caracteristică fişier.
După cum sa discutat în secțiunea de introducere, .fisier caracteristică este proprietatea care a fost moștenită de la Castravete. În acest fișier, vom scrie scenariile de testare care trebuie executate pentru efectuarea testării API.
- Accesați dosarul src / test / java în proiectul tău.
- Faceți clic dreapta pe el și creați un fișier nou - userDetails.feature. Apoi faceți clic pe butonul Finalizare.
Acum veți vedea următorul fișier sub folder src / test / java
Pictogramă verde seamănă cu .feature fi le in Castravete pe care tocmai l-am creat.
- Odată ce fișierul a fost creat, acum vom scrie scenariile noastre de testare care vor fi discutate în secțiunea următoare.
# 6) Din moment ce avem scenariul și golul. caracteristică fișier gata, acum să începem cu primul nostru script. Să începem codarea
Scrieți următoarea linie de cod sub fișierul userDetails.feature pe care l-am creat la pasul 5:
Feature: fetching User Details Scenario: testing the get call for User Details Given url 'https://reqres.in/api/users/2' When method GET Then status 200
Să încercăm să înțelegem componentele scrise în fișierul de mai sus:
- Caracteristică: Cuvântul cheie explică numele funcției pe care o testăm.
- Fundal: Aceasta este o secțiune opțională care este tratată ca o secțiune cu cerințe preliminare. Aceasta poate fi utilizată pentru a defini tot ce este necesar pentru a testa API-ul. Contine 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 multiplu scenarii). Este descrierea cazului de testare.
- Dat: Este pasul care trebuie executat înainte de efectuarea oricărui alt pas de testare. Este o acțiune obligatorie care trebuie efectuată.
- Când: Specifică condiția care trebuie îndeplinită pentru a efectua următorul pas de testare.
- Atunci: Ne spune că ce ar trebui să se întâmple în cazul în care condiția menționată în Când este satisfacut.
Notă: Toate cuvintele cheie menționate mai sus provin din limba Gherkins. Acestea sunt modalitatea standard de scriere a scripturilor de testare folosind Castravete.
Și alte câteva cuvinte folosite în fișierul de caracteristici sunt:
- 200: Este codul de stare / răspuns pe care îl așteptăm (Faceți clic pe Aici pentru lista codurilor de stare)
- OBȚINE: Este metoda API precum 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 sa explicat în secțiunea de mai sus, Cucumber are nevoie de un fișier Runner care ar fi necesar pentru a executa .caracteristică fișier care conține scenariile de testare.
- Accesați dosarul src / test / java în proiectul tău
- Faceți clic dreapta pe el și creați un fișier Java nou: TestRunner.java
- Odată ce fișierul a fost creat, plasați următoarele linii de cod sub ea:
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 acum executat pentru a efectua 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-a rămas este să Alerga 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 Executare ca -> Test Junit
- Acum, odată selectat, veți începe să observați că cazul de testare a început acum.
- Așteptați executarea scriptului de testare. După ce ați terminat, veți observa ceva de genul prezentat în imaginea de mai jos din fereastra dvs.
- În cele din urmă, putem spune că am creat cu succes prima noastră bază Script de testare folosind Cadrul Karate.
# 8) În sfârșit, cadrul Karate oferă, de asemenea, o prezentare a raportului HTML pentru execuția care a fost efectuată.
- Accesați Folderul țintă -> surefire-reports-> Aici veți vedea raportul HTML pe care îl puteți deschide.
** Vă recomandăm, de asemenea, să deschideți același lucru folosind browserul Chrome pentru un aspect mai bun.
- Următorul raport HTML vă va fi prezentat descriind Scenarii și test care a fost executat pentru scenariul menționat:
Concluzie
În acest tutorial, am discutat testarea API, diferite instrumente de testare disponibile pe piață și 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 test de bază. Am început cu crearea unui element de bază 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 finalul pașilor multipli, am putut vedea raportul de execuție a rezultatelor testului.
Sperăm că acest tutorial a fost de ajutor pentru începători în învățarea modului de construire a primului script de testare folosind Karate Framework și de efectuare a testării API. Această abordare detaliată pas cu pas este o modalitate minunată de a rula și executa diferite teste pe API.
Lectură recomandată
- Cum se configurează cadrul de testare Node.js: Tutorial Node.js
- Parasoft SOAtest Tutorial: Instrument de testare API fără script
- Tutorial Mockito: Mockito Framework pentru batjocură în testarea unității
- Tutorial API de testare: un ghid complet pentru începători
- Tutorial TestNG: Introducere în TestNG Framework
- Jest Tutorial - Testarea unității JavaScript folosind Jest Framework
- Tutorial de testare distructivă și testare nedistructivă
- Cum se folosește Postman pentru testarea diferitelor formate API?