karate framework tutorial
Ovaj je vodič uvod u API testiranje pomoću Karate Framework-a. Saznajte o strukturi Karate test skripte i koracima za izgradnju prve test skripte:
API je akronim koji označava sučelje za programiranje aplikacija. Jednostavno rečeno, možemo ga definirati kao softverskog posrednika koji omogućuje komunikaciju između aplikacija.
API testiranje nam je potrebno jer:
- Rezultati se objavljuju brže, stoga više nema čekanja da li API funkcionira u redu.
- S bržim odzivom, primjena ovih API-ja također postaje brža, što omogućuje brzo vrijeme obrade.
- Rano otkrivanje kvarova, čak i prije nego što se stvori korisničko sučelje aplikacije, omogućuje nam ublažavanje rizika i ispravljanje kvarova.
- Moguća je velika isporuka u kraćem razdoblju.
Da bismo mogli raditi na API testiranju, na tržištu imamo dostupne razne alate kao što su Poštar, Mocha i Chai. Oni su pokazali dobre rezultate i učinkovitu upotrebu za testiranje API-ja, međutim na njih se jako utječe. Da bi se mogao koristiti njima, mora biti tehnički dobar i upoznat s programskim jezicima.
Karate Framework lijepo rješava ovo pitanje prethodnih softverskih alata.
Što ćete naučiti:
Što je Karate Framework
Karate? Razgovarajmo o karateu. Je li to onaj iz Japana? Što misliš? Možda je to sjajni Bruce Lee razvio u svoje slobodno vrijeme.
Iako bismo željeli ući u zanimljive korijene karatea, za sada, razgovarajmo o Karate alat koji je razvio Peter Thomas , jedan od sjajnih alata koji pomažu spasiteljima API testera.
Karate okvir slijedi krastavčev stil pisanja programa koji slijedi BDD pristup. Sintaksu je lako razumjeti ne-programerima. A ovaj je okvir jedini alat za testiranje API-ja koji je kombinirao API automatizaciju i testiranje performansi u jedan samostalni alat.
Korisnicima pruža mogućnost izvršavanja testnih slučajeva u paralelnom načinu i izvršavanja JSON i XML provjera.
Pomoću ovih podataka mogu se utvrditi određene ključne točke za daljnje detaljno razumijevanje alata Karate:
- Karate je BDD okvir za testiranje umjesto TDD-a.
- Dizajniran je tako da bude jednostavan za programere. Ova je značajka izmjenjivač igara jer omogućava više ljudi i veći pristup bez obzira na njihovu tehničku pozadinu ili kapacitet.
- Koristi datoteku značajki Krastavac i jezik Gherkins za pisanje testa koji je vrlo lako razumljiv.
Sve ove značajke čine ga jednim od najpovoljnijih alata za automatizaciju koji su danas dostupni.
Povijest karate okvira
Napravio ' Peter Thomas 2017. ovaj softver želi učiniti funkcionalnosti testiranja dostupnima svima. Napisan je na Javi i većina ljudi očekivala je da će i njegove datoteke biti na istom jeziku, međutim, srećom, to nije slučaj.
Umjesto toga, koristi Gherkins datoteke, što je rezultat njegovog odnosa s okvirom Krastavca. Softver za automatizaciju produžetak je Krastavca, pa nasljeđuje upotrebu Gherkins datoteke u svom radu. Velika je razlika između njih dvije u tome što Karate ne koristi Javu tijekom testiranja, ali krastavac to čini.
To je upravo razlog zašto se obraća onima koji nisu programeri jer je Gherkinsova sintaksa super čitljiva i sveobuhvatna. To je razlog zašto je Karate najprikladniji i preporučen za ulazak u svijet automatiziranog API testiranja.
Slijede neke značajke Karate okvira za testiranje:
- Koristi jezik za razumijevanje kornišona.
- Ne zahtijeva tehničko znanje programiranja poput Jave.
- Temelji se na popularnim standardima krastavaca.
- Lako je stvoriti okvir.
- Paralelno testiranje je osnovna funkcionalnost koju pruža sam Karate, stoga ne trebamo ovisiti o njemu Maven, Gradle itd.
- Korisničko sučelje za ispravljanje pogrešaka testa.
- Pozivanje datoteke značajke iz druge datoteke.
- Pruža podršku za testiranje upravljačkog programa podataka koje je ugrađeno u tvrtku, stoga ne treba ovisiti o vanjskim okvirima.
- Ugrađena izvorna izvješća o odmoru. Osim toga, može se integrirati s krastavcem za bolja izvješća o korisničkom sučelju i veću jasnoću.
- Pruža internu podršku za prebacivanje konfiguracije u različita testna okruženja (QA, Stage, Prod, Pre-Prod).
- Besprijekorna podrška za CI / CD integraciju koja može biti korisna.
- Sposoban za obradu različitih HTTP poziva:
- Podrška za web utičnicu
- Sapun zahtjev
- HTTP
- Rukovanje kolačićima preglednika
- HTTPS
- Podaci u HTML obliku
- XML zahtjev
Usporedba karatea s nesigurnim
Budite uvjereni : Biblioteka je zasnovana na Javi za testiranje REST usluga. Koristi Java jezik za pisanje redaka koda. Pomaže u testiranju brojnih kategorija zahtjeva, što dalje rezultira provjerom različitih kombinacija poslovne logike.
Karate okvir : Alat na bazi krastavaca / kornišona, koji se koristi za testiranje usluga SOAP & REST.
Sljedeća tablica navodi nekoliko istaknutijih razlika između Ovjera i Karate okvira:
S.Br | Osnova | Karate okvir | Budite uvjereni |
---|---|---|---|
7 | Izvještavanje | Pruža interno izvještavanje, stoga ne mora biti ovisno o vanjskim dodacima. Možemo ga čak integrirati s dodatkom za izvještavanje o krastavcima radi boljeg korisničkog sučelja. | Morate biti ovisni o vanjskim dodacima poput Junita, TestNG-a |
1 | Jezik | Koristi kombinaciju krastavca i kornišona | Koristi Java jezik |
dva | Veličina koda | Redak koda obično je manji, jer slijedi strukturu sličnu krastavcu | Redak koda je više jer uključuje upotrebu jezika Java |
3 | Potrebno tehničko znanje | Neprogrameri mogu lako napisati Gherkinsov kod | Za pisanje Java koda potrebno je tehničko znanje |
4 | Testiranje na temelju podataka | Trebate koristiti TestNG ili ekvivalent za podršku istom | Interne oznake mogu se koristiti za podršku testiranju podataka |
5 | Pruža li podršku za SOAP pozive | Da, pruža | To je povezano samo s REST zahtjevom |
6 | Paralelno ispitivanje | Da, paralelno testiranje lako se podržava i paralelnim generiranjem izvješća | Ne u velikoj mjeri. Iako su ljudi to pokušali, stopa neuspjeha je više od stope uspjeha |
8 | CSV podrška za vanjske podatke | Da, iz Karatea 0.9.0 | Ne, morate koristiti Java kod ili knjižnicu |
9 | Automatizacija web korisničkog sučelja | Da, iz Karate 0.9.5 automatizacija web-korisničkog sučelja je moguća | Ne, nije podržano |
10 | Uzorak GET | Given param val1 = ‘name1’ | given(). |
Stoga, kao što pokazuju gornje razlike, sigurno je reći da je karate jedna od najlakših stvari koje bilo tko može učiniti.
Alati potrebni za rad s Karate Frameworkom
Budući da smo osnovno znanje o Karate Frameworku dobili točno, pogledajmo procese i alate potrebne za postavljanje Karate okruženja.
# 1) Pomrčina
Eclipse je integrirano razvojno okruženje koje se koristi u području računalnog programiranja. Uglavnom se koristi za Java programiranje. Kao što je ranije spomenuto, Karate je napisan na Javi, pa ima više smisla zašto je Eclipse idejni IDE za API testni softver. Drugi je razlog taj što je to alat otvorenog koda, a to je prilično jak razlog da se odlučite za ovaj alat.
Bilješka: Čak bismo mogli koristiti IntelliJ, Visual Studio i druge različite uređivače dostupne na tržištu.
# 2) Maven
Ovo je alat za automatizaciju izrade koji se prvenstveno koristi za izgradnju Java projekata. To je jedan od načina postavljanja Karate okruženja i pisanja koda. Da biste postavili Eclipse sa zahtjevima Mavena, možete kliknuti ovdje za instalaciju Maven.
Dok radite u Mavenu, koristite Mavenove ovisnosti koje bi vam pomogle da podržite Karate Framework.
Sljedeće će se ovisnosti koristiti s Mavenom u pom.xml.
com.intuit.karate karate-apache 0.9.5 test com.intuit.karate karate-junit4 0.9.5 test
Bilješka: Najnovije verzije mogu biti dostupne u spremištu Maven.
kako mogu otvoriti apk datoteke
# 3) Gradle
Gradle je alternativa Mavenu i može se koristiti u jednakom kapacitetu. Oni imaju svoje sličnosti i razlike, ali se mogu jednako koristiti u postavljanju okruženja za naše karate kodove.
Jednostavniji je za upotrebu, fleksibilan i preporučuje se korištenje kada naša aplikacija ima neke zahtjeve za modularizaciju i upravljanje s gomilom dodataka. Kôd za postavljanje Gradlea izgledao bi otprilike ovako,
testCompile 'com.intuit.karate:karate-junit4:0.6.0' testCompile 'com.intuit.karate:karate-apache:0.6.0'
Bilješka: Možete koristiti MAVEN ili GRADLE.
# 4) Postavljanje Java okruženja u vašem sustavu
Trebate postaviti JDK i JRE okruženje da biste započeli sa Karate Framework skriptama.
Struktura karate test skripte
Skripta za karate test poznata je po tome što posjeduje proširenje '.feature'. Ova je imovina naslijeđena od krastavca. Organizacija datoteka u Java konvenciji također je jednako dopuštena. Možete slobodno organizirati datoteke u skladu s konvencijama Java paketa.
Međutim, smjernice za Maven nalažu da se pohrana ne-Java datoteka vrši zasebno. Gotovi su u a src / test / resources struktura. I Java datoteke se čuvaju pod src / main / java .
No, prema tvorcima Karate Framework-a, oni čvrsto vjeruju da i Java i ne-Java datoteke držimo jedna uz drugu. Prema njima, mnogo je lakše paziti na datoteke. .Java i * .feature kada se drže zajedno, umjesto da slijede standardnu Mavenovu strukturu.
To se lako može učiniti podešavanjem vašeg pom.xml na sljedeći način (za Maven):
src/test/java **/*.java ...
Slijedi pregled opće strukture Karate okvira:
Sada, budući da ovaj Karate Framework koristi datoteku Runner, koja je također potrebna u Cucumberu za pokretanje datoteka značajki, tako da će većina napisa slijediti Cucumber standarde.
No, za razliku od Krastavca, koraci ne zahtijevaju jasnu definiciju u karateu, a koji, pak, povećavaju fleksibilnost i jednostavnost rada. Ne trebamo dodavati dodatno ljepilo koje obično moramo dodavati kada slijedimo okvir Krastavca.
Klasa 'Trkač' većinu je vremena imenovana TestRunner.java.
Tada će datoteka TestRunner.java poprimiti oblik:
import com.intuit.karate.junit4.Karate; import org.junit.runner.RunWith; @RunWith(Karate.class) public class TestRunner { }
I razgovarajući o .obilježje datoteka sadrži sve scenarije testiranja koje treba testirati kako bi se osiguralo da API radi prema očekivanim zahtjevima.
Općenita * .feature datoteka izgleda otprilike kao što je prikazano u nastavku:
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
Stvaranje prve osnovne skripte za karate test
Ovaj će vam odjeljak pomoći da započnete sa izradom vaše prve testne skripte, koja će vam biti korisna za pretvaranje API-ja u obliku Karate okvira.
Prije nego napišemo osnovne skripte za karate test, instalirajte sljedeće uređaje na svoj stroj:
- Eclipse IDE
- Maven. Postavite odgovarajući Mavenov put.
- JDK & JRE. Postavite odgovarajući put.
Pogledajmo korak po korak:
# 1) Stvori novo MAVEN Projekt u Eclipse Editoru
- Otvorite Eclipse
- Kliknite Datoteka. Odaberite Novi projekt.
- Odaberite Maven Project
- Odaberite mjesto radnog prostora.
- Odaberite arhetip (obično odabiremo “ Maven-arhetip-brzi početak 1.1 ”Za jednostavne Mavenove projekte).
- Navedite ID grupe i ID artefakta (u primjeru smo koristili sljedeće vrijednosti).
- ID grupe : Karate
- ID artefakta: KarateTestScriptsSample
- Kliknite Finish da dovršite postavljanje.
#dva) Jednom stvoreni, u prozoru Project Explorer moći ćete vidjeti sljedeću strukturu.
# 3) Uključite sve svoje ovisnosti.
Naš prvi korak, nakon postavljanja na koji ćemo krenuti uključuju sve ovisnosti to će biti potrebno za izvršenje. Sve oznake zadržat ćemo pod POM.xml (pod pretpostavkom da ste već svjesni upotrebe POM.xml).
- Otvorite POM.xml i kopirajte donji kod ispod oznake ovisnosti i spremite datoteku.
com.intuit.karate karate-apache 0.9.5 test com.intuit.karate karate-junit4 0.9.5 test
Klik ovdje za izvor.
# 4) Razmislimo o scenariju, što ćemo testirati u ovom osnovnom testnom skriptu za karate.
Scenarij:
S tim ćemo testirati API URL.
Staza: api / users / 2
Metoda: DOBITI
I moramo potvrditi , vraća li zahtjev a Šifra uspjeha (200) ili ne.
Jednostavno rečeno, mi ćemo samo testirati uzorak API-ja da vidimo hoće li se uspješno izvršiti ili ne.
Bilješka: Uzimamo uzorak API-ja koji je dostupan za testiranje. Možete odabrati bilo koji PATH ili se uputiti na svoj API.
Klik ovdje za izvor.
# 5) Sada bi naš sljedeći korak bio stvaranje a .obilježje datoteka.
Kao što je raspravljeno u uvodnom dijelu, .datoteka značajke je imanje koje je naslijeđeno od Krastavca. U ovoj ćemo datoteci zapisati scenarije testiranja koje je potrebno izvršiti za provođenje API testiranja.
- Idite u mapu src / test / java u vašem projektu.
- Desni klik na nju i stvorite novu datoteku - userDetails.feature. Zatim kliknite gumb Završi.
Sada ćete ispod mape vidjeti sljedeću datoteku src / test / java
The Ikona zelene boje sliči na .obilježje fi le u krastavcu koji smo upravo stvorili.
- Nakon što je datoteka kreirana, sada ćemo napisati naše testne scenarije o kojima će biti riječi u sljedećem odjeljku.
# 6) Budući da imamo scenarij i prazno. značajka datoteka spremna, sada krenimo s našom prvom skriptom. Počnimo s kodiranjem
U datoteku userDetails.feature koju smo stvorili u koraku 5 napišite sljedeći redak koda:
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
Pokušajmo razumjeti komponente zapisane u gornjoj datoteci:
- Značajka: Ključna riječ objašnjava naziv značajke koju testiramo.
- Pozadina: Ovo je neobavezni odjeljak koji se tretira kao preduvjet. To se može koristiti za definiranje što je sve potrebno za testiranje API-ja. Sadrži GLAVA, URL i PARAM mogućnosti.
- Scenarij: Svaka datoteka značajke koju ćete vidjeti imat će barem jednu značajku (iako može dati višestruko scenariji). To je opis test slučaja.
- Dano: To je korak koji treba izvršiti prije izvođenja bilo kojeg drugog koraka ispitivanja. Obavezna je radnja koju treba izvršiti.
- Kada: Određuje uvjet koji bi trebao biti zadovoljen za provođenje sljedećeg koraka ispitivanja.
- Zatim: Kaže nam da se ono što bi se trebalo dogoditi u slučaju da je stanje spomenuto u Kada je zadovoljan.
Bilješka: Sve gore spomenute ključne riječi potječu iz jezika Gherkins. Ovo su standardni način pisanja testnih skripti pomoću Krastavca.
I još neke riječi korištene u datoteci značajki su:
- 200: To je kod statusa / odgovora koji očekujemo (kliknite ovdje za popis statusnih kodova)
- DOBITI: To je API metoda poput POST, PUT itd.
Nadamo se da vam je ovo objašnjenje bilo lako razumjeti. Sada ćete se moći povezati s onim što je točno zapisano u gornjoj datoteci.
Sada moramo stvoriti datoteku TestRunner.java
Kao što je objašnjeno u gornjem odjeljku, Cucumber treba datoteku Runner koja bi bila potrebna za izvršavanje .obilježje datoteka koja sadrži scenarije testiranja.
jira izvještaj o praćenju vremena od strane korisnika
- Idite u mapu src / test / java u vašem projektu
- Desni klik na nju i stvorite novu Java datoteku: TestRunner.java
- Jednom kada je datoteka kreirana, ispod njega stavite sljedeće retke koda:
import org.junit.runner.RunWith; import com.intuit.karate.junit4.Karate; @RunWith(Karate.class) public class TestRunner { }
- Test Runner je datoteka koja će se sada izvršiti za izvođenje željenog scenarija napisanog u koraku # 5.
# 7) Sad smo spremni s obje datoteke TestRunner.Java i userDeatils.feature. Jedini zadatak koji nam preostaje je da Trčanje skripta.
- Idite na datoteku TestRunner.java i kliknite datoteku desnom tipkom miša kako je prikazano na donjoj slici.
- Odaberite Pokreni kao -> Junit test
- Sada, nakon odabira, počet ćete opažati da je testni slučaj sada pokrenut.
- Pričekajte da se skripta za test izvrši. Kada završite, primijetit ćete nešto poput prikazanog na donjoj slici u vašem prozoru.
- Konačno, možemo reći da smo uspješno stvorili svoj prvi osnovni Test skripta koristiti Karate okvir.
# 8) Na kraju, Karate okvir također daje prezentaciju HTML izvješća za izvršenje koje je izvedeno.
- Idite na Ciljna mapa -> surefire-reports-> Ovdje ćete vidjeti svoje HTML izvješće koje možete otvoriti.
** Također bismo vam predložili da otvorite isti pomoću preglednika Chrome za bolji izgled i dojam.
- Sljedeći HTML izvještaj bit će vam prikazan s prikazom Scenariji i test koji je izvršen za spomenuti scenarij:
Zaključak
U ovom smo tutorijalu raspravljali o API testiranju, različitim alatima za testiranje koji su dostupni na tržištu i kako je Karate Framework bolja opcija u odnosu na svoje kolege.
Slijedili smo korak po korak kako bismo stvorili prvu osnovnu skriptu za test. Počeli smo s izradom osnovnog Maven projekt u Eclipse IDE-u stvoriti datoteku .feature koja sadrži sav scenarij testiranja i datoteku Runner za izvršavanje testnog slučaja spomenutog u datoteci .feature.
Na kraju više koraka mogli smo vidjeti izvješće o izvršenju rezultata ispitivanja.
Nadamo se da je ovaj vodič bio koristan za početnike u učenju kako izgraditi svoju prvu testnu skriptu pomoću Karate Framework-a i provesti API testiranje. Ovaj detaljni korak po korak pristup je izvrstan način za pokretanje i izvršavanje različitih testova na API-ju.
Preporučena literatura
- Kako postaviti okvir za testiranje Node.js: Vodič za Node.js
- Vodič za Parasoft SOAtest: Alat za testiranje API-ja bez skripti
- Vodič za Mockito: Mockito okvir za ruganje u jedinstvenom testiranju
- Vodič za API testiranje: Cjelovit vodič za početnike
- Vodič za TestNG: Uvod u TestNG Framework
- Vodič za Jest - JavaScript jedinično testiranje pomoću Jest Framework-a
- Vodič za ispitivanje razaranja i ispitivanja bez razaranja
- Kako koristiti poštara za testiranje različitih formata API-ja?