Ovaj vodič je uvod u API testiranje pomoću Karate okvira. Saznajte više o strukturi testne skripte karatea i koracima za izradu prve testne skripte:

API je akronim koji označava programsko sučelje aplikacije. Jednostavno rečeno, možemo ga definirati kao softverskog posrednika koji omogućuje komunikaciju između aplikacija.

Potrebno nam je API testiranje jer:

  • Rezultati se objavljuju brže, stoga nema više čekanja da se vidi radi li API dobro.
  • S bržim odgovorom, implementacija ovih API-ja također postaje brža, stoga omogućuje brzo vrijeme obrade.
  • Rano otkrivanje kvara, čak i prije nego što se izradi korisničko sučelje aplikacije, omogućite nam da smanjimo rizike i ispravimo greške.
  • Isporuka velikih razmjera moguća je u kraćem roku.

Kako bismo mogli raditi na API testiranju, na tržištu imamo dostupne razne alate kao što su Postman, Mocha i Chai. Oni su pokazali dobre rezultate i učinkovitu upotrebu za testiranje API-ja, međutim, oni su pod velikim utjecajem koda. Da biste ih mogli koristiti, morate biti tehnički potkovani i upoznati s programskim jezicima.

Karate Framework prekrasno rješava ovaj problem svojih prethodnih softverskih alata.

Što je karate okvir

Karate? Razgovarajmo o karateu. Je li to onaj iz Japana? Što misliš? Možda je to veliki Bruceovu karate osnovnu testnu skriptu.

Scenarij:

Testirati ćemo API s ovim URL-om.

Put: api/users/2

Metoda: GET

I trebamo provjeriti da li zahtjev vraća Kod uspjeha ( 200) ili ne.

Jednostavno rečeno, samo ćemo testirati uzorak API-ja da vidimo izvodi li se uspješno ili ne.

Napomena: Uzimamo uzorak API-ja koji je dostupan za testiranje. Možete odabrati bilo koji PATH ili se možete pozvati na svoj API.

Kliknite ovdje za izvor.

#5) Sada bi naš sljedeći korak bio stvaranje .feature datoteka.

Kao što je objašnjeno u uvodnom dijelu, .feature datoteka je svojstvo koje je naslijeđeno od Cucumbera. U ovoj datoteci ćemo ispisati testne scenarije koje je potrebno izvršiti za izvođenje API testiranja.

  • Idite u mapu src/test/java u svom projektu.

  • Desni klik na nju i stvorite novu datoteku – userDetails.feature. Zatim kliknite na gumb Završi.

Sada ćete vidjeti sljedeću datoteku u mapi src/test/java

Zelena ikona nalikuje .feature datoteci u Cucumberu koju smo upravo stvorili.

  • Nakon što je datoteka stvorena, sada ćemo napisati naše testne scenarije o kojima će biti riječi u sljedećem odjeljku.

#6) Budući da imamo scenarij iprazna datoteka . feature spremna, sada započnimo s našom prvom skriptom. Počnimo s kodiranjem

Napišite sljedeći redak koda pod datoteku userDetails.feature koju smo stvorili u koraku #5:

 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

Pokušajmo razumjeti komponente koje su zapisane u gornjoj datoteci:

  • Značajka: Ključna riječ objašnjava naziv značajke koju testiramo.
  • Pozadina: Ovo je neobavezan odjeljak koji se tretira kao preduvjetni odjeljak. Ovo se može koristiti za definiranje što je sve potrebno za testiranje API-ja. Sadrži ZAGLAVLJE, URL & PARAM opcije.
  • Scenarij: Svaka datoteka značajki koju ćete vidjeti imat će barem jednu značajku (iako može dati više scenarija) . To je opis testnog slučaja.
  • Dano: To je korak koji treba izvršiti prije nego što se izvrši bilo koji drugi testni korak. To je obavezna radnja koju treba izvršiti.
  • Kada: Određuje uvjet koji bi trebao biti ispunjen za izvođenje sljedećeg koraka testiranja.
  • Tada: Govori nam što bi se trebalo dogoditi u slučaju da je uvjet naveden u Kada ispunjen.

Napomena: Sve gore navedene ključne riječi su iz jezika kornišoni. Ovo je standardni način pisanja testnih skripti pomoću Cucumbera.

I još neke riječi koje se koriste u datoteci značajki su:

  • 200: To je kod statusa/odgovora koji mi jesmoočekujući (Kliknite ovdje za popis statusnih kodova)
  • GET: To je API metoda kao POST, PUT, itd.

Nadamo se da ovo objašnjenje bilo ti je lako razumjeti. Sada ćete se moći povezati s onim što je točno napisano 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 datoteke .feature koja sadrži scenarije testiranja.

  • Idite na mapu src/test/java u vašem projektu

  • Desni klik na njega i kreirajte novu Java datoteku: TestRunner.java
  • Nakon što je datoteka stvorena, postavite sljedeće retke koda ispod nje:
 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 željeni scenarij koji je napisan pod korakom #5.

#7) Sada smo spremni s obje datoteke TestRunner.Java i userDeatils.feature. Jedini zadatak koji nam preostaje je pokrenuti skriptu.

  • Idite na datoteku TestRunner.java i kliknite desnom tipkom miša na datoteku kao što je prikazano na donjoj slici.

  • Odaberite Pokreni kao -> Junit Test
  • Sada, nakon odabira, počet ćete promatrati da je testni slučaj sada započeo.
  • Pričekajte da se test skripta izvrši. Kada završite, vidjet ćete nešto poput prikazanog na donjoj slici u vašem prozoru.

  • Konačno, možemo rećida smo uspješno izradili našu prvu osnovnu Testnu skriptu koristeći Karate okvir.

#8) Posljednje, karate framework također daje prezentaciju HTML izvješća za izvršenje koje je izvršeno.

  • Idi na ciljnu mapu -> sigurni-izvješća-> Ovdje ćete vidjeti svoje HTML izvješće koje možete otvoriti.

** Također vam predlažemo da isto otvorite koristeći Chrome Preglednik za bolji izgled i dojam.

  • Prikazat će vam se sljedeće HTML izvješće koje prikazuje Scenarije & Test koji je izvršen za spomenuti scenarij:

Zaključak

U ovom vodiču raspravljali smo o testiranju API-ja, različitim testiranjima alate dostupne na tržištu i kako je Karate Framework bolja opcija u usporedbi sa svojim kolegama.

Slijedili smo pristup korak po korak kako bismo stvorili našu prvu osnovnu testnu skriptu. Počeli smo s izradom osnovnog Maven projekta u Eclipse IDE kako bismo stvorili .feature datoteku, koja sadrži sav scenarij testiranja i Runner datoteku za izvođenje testnog slučaja spomenutog u .feature datoteci.

Na kraju višestrukih koraka mogli smo vidjeti izvješće o izvršenju rezultata testa.

Nadamo se da je ovaj vodič bio od pomoći početnicima u učenju kako izraditi svoju prvu testnu skriptu koristeći Karate Framework i provesti API testiranje. Ovaj detaljan korak po korakpristup je prekrasan način za pokretanje i izvršavanje raznih testova na API-ju.

DALJE>>

Lee je ovo razvio u svoje slobodno vrijeme.

Iako bismo željeli proniknuti u zanimljive korijene karatea, za sada, razgovarajmo o Karate alatu koji je razvijen autora Petera Thomasa , jednog od izvrsnih alata koji priskaču u pomoć API testerima.

Karate framework slijedi Cucumber stil pisanja programa koji slijedi BDD pristup. Neprogramerima je sintaksu lako razumjeti. I ovaj okvir je jedini alat za testiranje API-ja koji je kombinirao API automatizaciju i testiranje performansi u jedan samostalni alat.

Omogućuje korisnicima mogućnost paralelnog izvršavanja testnih slučajeva i izvođenja JSON & XML provjere.

S ovim informacijama mogu se zaključiti određene ključne točke kako bi se detaljnije razumio Karate alat:

  • Karate je umjesto toga BDD okvir za testiranje TDD-a.
  • Dizajniran je da bude jednostavan za neprogramere. Ova značajka mijenja pravila jer omogućuje veću upotrebu i pristup mnogim ljudima bez obzira na njihovu tehničku pozadinu ili sposobnost.
  • Ona koristi datoteku značajki Cucumber i jezik Gherkins za pisanje testa koji je vrlo lako razumjeti.

Sve ove značajke čine ga jednim od najpovoljnijih alata za automatizaciju koji su danas dostupni.

Povijest karate okvira

Stvorio ' Petera Thomasa 2017., ovaj softver ima za cilj napraviti testiranjefunkcionalnosti dostupne svima. Napisan je u Javi i većina ljudi je očekivala da će i njegove datoteke biti na istom jeziku, međutim, na sreću, to nije slučaj.

Umjesto toga, koristi Gherkins datoteke, što je rezultat njegovog odnosa s Okvir krastavaca. Softver za automatizaciju je proširenje Cucumbera, stoga nasljeđuje korištenje datoteke Gherkins u svom radu. Velika razlika između njih dvoje je u tome što Karate ne koristi Javu tijekom testiranja, ali Cucumber to čini.

To je upravo razlog zašto je prilagođen ne-programerima jer je sintaksa Gherkins super čitljiva i sveobuhvatna. To je razlog zašto je Karate najprikladniji i preporučeni za ulazak u svijet automatiziranog API testiranja.

Sljedeće su neke značajke Karate Testing Frameworka:

  • Koristi se lako razumljivim Gherkins jezikom.
  • Ne zahtijeva tehničko programsko znanje kao Java.
  • Temelji se na popularnim Cucumber standardima.
  • Lako se stvara okvir.
  • Paralelno testiranje je temeljna funkcionalnost koju pruža sam Karate, stoga ne moramo ovisiti o Mavenu, Gradleu itd.
  • UI za otklanjanje pogrešaka u testu.
  • Pozivanje značajke datoteke iz druge datoteke.
  • Pruža podršku za testiranje pokretača podataka koji je ugrađen unutar tvrtke, stoga nema potrebe ovisiti o vanjskim okvirima.
  • Ugrađeni izvorni ostatakIzvještaji. Osim toga, može se integrirati s Cucumberom za bolja izvješća korisničkog sučelja i veću jasnoću.
  • Pruža internu podršku za promjenu konfiguracije u različitim okruženjima testiranja (QA, Stage, Prod, Pre-Prod).
  • Besprijekorna podrška za CI/CD integraciju koja može biti korisna.
  • Sposoban za rukovanje raznim HTTP pozivima:
    • Podrška za web utičnicu
    • SOAP zahtjev
    • HTTP
    • Rukovanje kolačićima preglednika
    • HTTPS
    • Podaci HTML obrasca
    • XML zahtjev

Usporedba karatea i Rest-Assureda

Budite sigurni : To je knjižnica temeljena 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 Framework : alat temeljen na krastavcima/kornišonima, koji se koristi za testiranje za SOAP & REST usluge.

Sljedeća tablica navodi nekoliko istaknutijih razlika između Rest-Assured & Okvir karatea:

S.No Osnova Okvir karatea Sigurno REST
1 Jezik Koristi kombinaciju krastavca i kornišona Koristi jezik Java
2 Veličina koda Obično, redak koda je manje, jer slijedi strukturu sličnu krastavcu Linija koda je više jer uključujekorištenje Java jezika
3 Potrebno tehničko znanje Neprogrameri mogu lako pisati kod Gherkins Za pisanje Java koda potrebno je tehničko znanje
4 Testiranje vođeno podacima Potrebno je koristiti TestNG ili ekvivalent za podršku istom Unutarnje oznake mogu se koristiti za podršku testiranju podataka
5 Omogućuje li podršku za SOAP pozive Da, pruža Odnosi se samo na REST zahtjev
6 Paralelno testiranje Da, paralelno testiranje je lako podržano uz paralelno generiranje izvješća previše Ne u velikoj mjeri. Iako su ljudi pokušali to učiniti, stopa neuspjeha veća je od stope uspjeha
7 Prijava Omogućuje interno izvješćivanje, stoga ne mora ovisiti o vanjskim dodacima. Možemo ga čak integrirati s dodatkom za izvješćivanje Cucumber za bolje korisničko sučelje. Moramo ovisiti o vanjskim dodacima kao što su Junit, TestNG
8 CSV podrška za vanjske podatke Da, od Karate 0.9.0 Ne, moram koristiti Java kod ili biblioteku
9 Automatizacija web sučelja Da, od Karate 0.9.5 moguća je automatizacija web sučelja Ne, nije podržan
10 Uzorak PREUZMI 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"));

Dakle, kao što pokazuje gore navedenih razlika, sa sigurnošću se može reći da je karate jedna od najlakših stvari koje svatko može učiniti.

Alati potrebni za rad s karate okvirom

Sada, budući da smo stekli osnovno znanje o Karate Framework na točki, pogledajmo procese i alate potrebne za postavljanje karate okruženja.

#1) Eclipse

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 u Javi, pa ima više smisla zašto je Eclipse IDE IDE za softver za testiranje API-ja. Drugi razlog je taj što je to alat otvorenog koda, a ovo je prilično jak razlog da se odlučite za ovaj alat.

Napomena: Možemo čak koristiti IntelliJ, Visual Studio i druge različite uređivači dostupni na tržištu.

#2) Maven

Ovo je alat za automatizaciju izrade koji se prvenstveno koristi za izradu Java projekata. To je jedan od načina postavljanja karate okruženja i pisanja koda. Za postavljanje zahtjeva za Eclipse s Mavenom, možete kliknuti ovdje za instalaciju Mavena.

Dok radite u Mavenu, koristite Mavenove ovisnosti koje bi vam pomogle da podržite Karate Framework.

Sljedeće ovisnosti će se koristiti s Mavenom u pom.xml.

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

Napomena: Najnovije verzije mogubiti dostupan u repozitoriju Maven.

#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.

Lakši je za korištenje, fleksibilan je i preporučuje se za korištenje kada naša aplikacija ima neke zahtjeve za modularizaciju i upravljanje s hrpa dodataka. Gradle kod za postavljanje izgledao bi otprilike ovako,

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

Napomena: Možete koristiti MAVEN ili GRADLE.

#4) Postavljanje Java okruženja u vašem sustavu

Potrebno je postaviti JDK i JRE okruženje da biste započeli s Karate Framework skriptama.

Struktura karate testne skripte

Skripta za testiranje karatea poznata je po tome što posjeduje ekstenziju “.feature”. Ovo svojstvo je naslijeđeno od Cucumbera. Organizacija datoteka u Java konvenciji također je jednako dopuštena. Možete slobodno organizirati svoje datoteke u skladu s konvencijama Java paketa.

Međutim, smjernice Mavena upućuju da se pohranjivanje ne-Java datoteka vrši zasebno. Rade se u strukturi src/test/resources . A Java datoteke se čuvaju pod src/main/java .

Ali prema tvorcima Karate Frameworka, oni čvrsto vjeruju da Java i ne-Java datoteke držimo jedna pored druge strana. Prema njima, puno je lakše paziti naDatoteke *.java i *.feature kada se drže zajedno, umjesto da slijede standardnu ​​strukturu Mavena.

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 nacrt opće strukture karate okvira:

Sada, budući da ovaj karate okvir koristi datoteku Runner, koja je također potrebna u Cucumberu za pokretanje datoteka značajki, tako da će većina pisanja slijediti standarde Cucumbera.

Ali, za razliku od Cucumbera, koraci ne zahtijevaju jasnu definiciju u karateu i koji , zauzvrat, povećavaju fleksibilnost i jednostavnost rada. Ne trebamo dodavati dodatno ljepilo koje obično moramo dodati kada slijedimo Cucumber okvir.

Klasa “Runner” se većinu vremena naziva TestRunner.java.

Tada će datoteka TestRunner.java imati oblik:

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

A što se tiče datoteke .feature , ona sadrži sva testiranja scenarije koje je potrebno testirati kako bi se osiguralo da API radi prema očekivanim zahtjevima.

Opća *.feature datoteka izgleda otprilike kao što je prikazano u nastavku:

 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

Stvaranje prve osnovne skripte za testiranje karatea

Ovaj odjeljak pomoći će vam da započnete s izradom vaše prve skripte za testiranje, koja će vam biti korisna za pretvaranje API-ja u obliku karate okvira.

Prije nego što napišemo osnovne skripte karate testa,instalirajte sljedeće rekvizite na svoj stroj:

  • Eclipse IDE
  • Maven. Postavite odgovarajući Maven put.
  • JDK & JRE. Postavite odgovarajući put.

Pogledajmo pristup korak po korak:

#1) Stvorite novi MAVEN projekt u Eclipse Editoru

  • Otvorite Eclipse
  • Kliknite na File. Odaberite Novi projekt.

  • Odaberite Maven projekt

  • Odaberite lokaciju radnog prostora.
  • Odaberite arhetip (obično biramo “ Maven-archetype-quickstart 1.1 ” za jednostavne Maven projekte).
  • Pružite ID grupe & ID artefakta (koristili smo sljedeće vrijednosti u našem primjeru).
    • ID grupe : Karate
    • ID artefakta: KarateTestScriptsSample
  • Kliknite Završi da dovršite postava.

#2) Nakon kreiranja, sada ćete moći vidjeti sljedeću strukturu u prozoru Project Explorera.

#3) Uključite sve svoje ovisnosti.

Naš prvi korak, nakon postavljanja bit ćemo uključiti sve ovisnosti koje će biti potrebne za izvršenje. Zadržat ćemo svu oznaku pod POM.xml (pod pretpostavkom da ste već upoznati s korištenjem 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 

Kliknite ovdje za izvor.

#4) Razmislimo o scenariju, što ćemo testirati u

Pomakni se na vrh