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

API je akronim koji je skraćenica za Application Programming Interface. Jednostavno rečeno, možemo ga definirati kao softverskog posrednika koji omogućava komunikaciju između aplikacija.

Potrebno nam je testiranje API-ja jer:

  • Rezultati se brže objavljuju, stoga nema više čekanja da se vidi da li API radi dobro.
  • Sa bržim odgovorom, implementacija ovih API-ja također postaje brža, stoga omogućava brzo vrijeme obrade.
  • Rano otkrivanje kvara, čak i prije kreiranja korisničkog sučelja aplikacije, dozvolite nam da ublažimo rizike i ispravimo greške.
  • Isporuka velikih razmjera moguća u kraćem periodu.

Da bismo mogli raditi na API testiranju, imamo različite alate dostupne na tržištu kao što su Postman, Mocha i Chai. Oni su pokazali dobre rezultate i efikasnu upotrebu za testiranje API-ja, međutim, oni su pod velikim uticajem koda. Da biste ih mogli koristiti, morate biti tehnički ispravni i upoznati sa programskim jezicima.

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

Šta je karate okvir

Karate? Hajde da pričamo o karateu. Je li to onaj iz Japana? Šta ti misliš? Možda je to veliki Bruceova skripta za osnovni test karatea.

Scenarij:

Testiraćemo API sa ovim URL-om.

Putanja: api/users/2

Metoda: GET

I moramo provjeriti , da li zahtjev vraća uspješni kod ( 200) ili ne.

Jednostavno rečeno, samo ćemo testirati uzorak API-ja da vidimo da li se on uspješno izvršava.

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

Kliknite ovdje za izvor.

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

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

  • Idite na folder src/test/java u svom projektu.

  • Kliknite desnim klikom na nju i kreirajte novu datoteku – userDetails.feature. Zatim kliknite na dugme Završi.

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

Ikona zelene boje podsjeća na .feature file le u Cucumberu koji smo upravo kreirali.

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

#6) Pošto imamo scenario iprazna datoteka . feature spremna, sada krenimo s našom prvom skriptom. Počnimo s kodiranjem

Napišite sljedeći red koda pod userDetails.feature fajl koji smo kreirali 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

Hajde da pokušamo razumjeti komponente koje su napisane u gornjoj datoteci:

  • Funkcija: Ključna riječ objašnjava naziv funkcije koju testiramo.
  • Pozadina: Ovo je izborni odjeljak koji se tretira kao preduvjetni odjeljak. Ovo se može koristiti za definiranje šta je sve potrebno za testiranje API-ja. Sadrži HEADER, URL & PARAM opcije.
  • Scenario: Svaka datoteka karakteristika koju ćete vidjeti imat će barem jednu funkciju (iako može dati više scenarija) . To je opis testnog slučaja.
  • Dato: 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: Ona specificira uslov koji treba da bude ispunjen za izvođenje sljedećeg testnog koraka.
  • Onda: To nam govori šta bi se trebalo dogoditi u slučaju da je uvjet naveden u Kada zadovoljen.

Napomena: Sve gore navedene ključne riječi su iz jezika kornišona. Ovo su standardni način pisanja testnih skripti koristeći Cucumber.

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

  • 200: To je status/kod odgovora koji smo miočekujući (Kliknite ovdje za listu statusnih kodova)
  • GET: To je API metoda poput POST, PUT, itd.

Nadamo se ovom objašnjenju bilo vam je lako razumjeti. Sada ćete moći da se povežete sa onim što je tačno napisano u gornjoj datoteci.

Sada moramo da kreiramo TestRunner.java fajl

Kao što je objašnjeno u gornjem tekstu odjeljak, Cucumber treba Runner datoteku koja bi bila potrebna za izvršavanje datoteke .feature koja sadrži scenarije testiranja.

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

  • Kliknite desnim klikom na njega i kreirajte novu Java datoteku: TestRunner.java
  • Kada je datoteka kreirana, postavite sljedeće linije 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 scenario koji je napisan u koraku #5.

#7) Sada smo spremni sa oba fajla TestRunner.Java i userDeatils.feature. Jedini zadatak koji nam preostaje je Pokrenuti skriptu.

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

  • Odaberi Pokreni kao -> Junit Test
  • Sada, nakon odabira, počet ćete opažati da je testni slučaj sada započeo.
  • Pričekajte da se skripta za testiranje izvrši. Kada završite, u svom prozoru ćete vidjeti nešto kao što je prikazano na slici ispod.

  • Konačno, možemo rećida smo uspješno kreirali naš prvi osnovni test skript koristeći karate okvir.

#8) Na kraju, karate framework također daje HTML prezentaciju izvještaja za izvršenje koje je izvršeno.

  • Idite na ciljnu mapu -> sigurni-izvještaji-> Ovdje ćete vidjeti svoj HTML izvještaj koji možete otvoriti.

** Također vam predlažemo da ga otvorite koristeći Chrome Pregledač za bolji izgled i osjećaj.

  • Sljedeći HTML izvještaj će vam biti prikazan koji prikazuje Scenarije & Test koji je izvršen za spomenuti scenarij:

Zaključak

U ovom tutorijalu smo raspravljali o API testiranju, različitim testiranjima alate koji su dostupni na tržištu i kako je karate okvir bolja opcija u poređenju sa svojim kolegama.

Pratili smo pristup korak po korak kako bismo kreirali naš prvi osnovni test skript. Počeli smo sa kreiranjem osnovnog Maven projekta u Eclipse IDE da kreiramo .feature datoteku, koja sadrži sav scenarij testiranja i Runner datoteku za izvršavanje testnog slučaja spomenutog u .feature datoteci.

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

Nadamo se da je ovaj tutorijal bio od pomoći početnicima u učenju kako da naprave svoj prvi test skript koristeći Karate Framework i izvršiti API testiranje. Ovaj detaljni korak po korakpristup je divan način za pokretanje i izvođenje različitih testova na API-ju.

NEXT>>

Lee je ovo razvio u svoje slobodno vrijeme.

Iako bismo željeli uroniti u zanimljive korijene karatea, za sada, hajde da pričamo o karate alatu koji je razvijen autor Peter Thomas , jedan od sjajnih alata koji dolaze u pomoć API testerima.

Karate okvir prati Cucumber stil pisanja programa koji prati BDD pristup. Sintaksu je lako razumjeti ne-programerima. A ovaj okvir je jedini alat za testiranje API-ja koji je kombinirao API automatizaciju i testiranje performansi u jedan samostalni alat.

Ona pruža korisnicima mogućnost da izvršavaju testne slučajeve paralelno i izvode JSON & XML provjere.

Sa ovim informacijama, određene ključne točke mogu se zaključiti za dalje razumijevanje karate alata u detalje:

  • Karate je umjesto toga okvir za testiranje BDD TDD-a.
  • Dizajniran je tako da bude lak za one koji ne programiraju. Ova funkcija mijenja igru ​​jer omogućava više korištenja i pristupa mnogim ljudima, bez obzira na njihovu tehničku pozadinu ili kapacitet.
  • Ona koristi datoteku značajki Cucumber i jezik Gherkins za pisanje testa koji je vrlo lako razumjeti.

Sve ove karakteristike ga čine jednim od najpovoljnijih alata za automatizaciju danas dostupnih.

Istorija okvira karatea

Kreirao ' Peter Thomas' u 2017., ovaj softver ima za cilj da izvrši testiranjefunkcionalnosti dostupne svima. Napisan je na Javi i većina ljudi je očekivala da će i njegovi fajlovi biti na istom jeziku, međutim, na sreću, to nije slučaj.

Radije, koristi Gherkins datoteke, što je rezultat njegovog odnosa sa Okvir krastavaca. Softver za automatizaciju je ekstenzija Cucumber-a, stoga nasljeđuje korištenje Gherkins datoteke u svom radu. Velika razlika između njih dvoje je u tome što Karate ne koristi Javu tokom testiranja, ali Cucumber koristi.

To je upravo razlog zašto služi onima koji nisu programeri jer je Gherkins sintaksa super čitljiva i sveobuhvatna. To je razlog zašto je karate najprikladniji i preporučljiv za ulazak u svijet automatiziranog API testiranja.

Sljedeće su neke karakteristike okvira za testiranje karatea:

  • Koristi jezik Gherkins koji je lako razumljiv.
  • Ne zahtijeva tehničko znanje programiranja kao što je Java.
  • Zasnovan je na popularnim standardima Cucumbera.
  • Lako za kreiranje okvira.
  • Paralelno testiranje je osnovna funkcionalnost koju pruža sam karate, stoga ne moramo ovisiti o Mavenu, Gradle , itd.
  • UI za otklanjanje grešaka u testu.
  • Pozivanje fajla karakteristika iz drugog fajla.
  • Pruža podršku za testiranje drajvera podataka koje je ugrađeno u kompaniji, stoga nema potrebe da zavisite od spoljnih okvira.
  • Ugrađeni izvorni odmorIzvještaji. Osim toga, može se integrirati s Cucumberom za bolje UI izvještaje i više jasnoće.
  • Pruža internu podršku za promjenu konfiguracije u različitim okruženjima za testiranje (QA, Stage, Prod, Pre-Prod).
  • Besprekorna podrška za CI/CD integraciju koja može biti korisna.
  • Mogućnost rukovanja raznim HTTP pozivima:
    • Podrška za web socket
    • SOAP zahtjev
    • HTTP
    • Rukovanje kolačićima preglednika
    • HTTPS
    • Podaci HTML obrasca
    • XML zahtjev

Poređenje Karatea i Rest-Assured

Rest Assured : To je Java-bazirana biblioteka za testiranje REST usluga. Za pisanje linija koda koristi jezik Java. Pomaže u testiranju brojnih kategorija zahtjeva, što dalje rezultira verifikacijom različitih kombinacija poslovne logike.

Karate Framework : Alat baziran na krastavcima/kornišonima, koji se koristi za testiranje za SOAP & REST usluge.

Sljedeća tabela navodi još nekoliko istaknutih razlika između Rest-Assured & Okvir karatea:

S.No Osnova Karate okvir Sigurno ODMOR
1 Jezik Koristi kombinaciju krastavca i kornišona Koristi jezik Java
2 Veličina koda Obično, linija kod je manji, jer prati strukturu nalik krastavcu Linija koda je više jer uključujeupotreba Java jezika
3 Potrebno tehničko znanje Ne-programeri mogu lako pisati kod Gherkins Za pisanje Java koda potrebno je tehničko znanje
4 Testiranje vođeno podacima Potreba da se koristi TestNG ili ekvivalent za podršku istih In-house oznake se mogu koristiti za podršku testiranja podataka
5 Da li pruža 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štaja također Ne u velikoj mjeri. Iako su ljudi pokušali to učiniti, stopa neuspjeha je veća od stope uspjeha
7 Izvještavanje Omogućava interno izvještavanje, 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 eksterne podatke Da, od Karate 0.9.0 Ne, potrebno je koristiti Java kod ili biblioteku
9 Automatizacija web korisničkog sučelja Da, od Karate 0.9.5 moguća je automatizacija web-UI Ne, nije podržano
10 Primjer 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"));

Dakle, kao što pokazuje razlike iznad, sa sigurnošću se može reći da je karate jedna od najlakših stvari koje svako može da uradi.

Alati potrebni za rad sa karate okvirom

Sada, pošto imamo naše osnovno znanje o Karate Framework, pogledajmo procese i alate potrebne za postavljanje karate okruženja.

#1) Eclipse

Eclipse je integrirano razvojno okruženje koje se koristi u oblasti kompjuterskog programiranja. Uglavnom se koristi za Java programiranje. Kao što je ranije pomenuto, Karate je napisan u Javi, tako da ima više smisla zašto je Eclipse IDE IDE za API test softver. 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: Mogli bismo čak koristiti IntelliJ, Visual Studio i druge različite editori dostupni na tržištu.

#2) Maven

Ovo je alat za automatizaciju izgradnje koji se prvenstveno koristi za izgradnju Java projekata. To je jedan od načina za postavljanje karate okruženja i pisanje koda. Da biste postavili svoj Eclipse sa Maven zahtjevima, možete kliknuti ovdje za instalaciju Mavena.

Dok radite u Mavenu, koristite ovisnosti Mavena koje će vam pomoći da podržite Karate Framework.

Sljedeće zavisnosti će se koristiti sa 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 bi moglebiti dostupan u Maven repozitorijumu.

#3) Gradle

Gradle je alternativa Mavenu i može se koristiti u istom kapacitetu. Oni imaju svoje sličnosti i razlike, ali se jednako mogu koristiti u postavljanju okruženja za naše Karate kodove.

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

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

Napomena: Možete koristiti ili MAVEN ili GRADLE.

#4) Podešavanje Java okruženja u vašem sistemu

Potrebno je da podesite JDK i JRE okruženje da biste započeli sa karate Framework skriptama.

Struktura skripte za karate test

Skripta za testiranje karatea poznata je po posjedovanju ekstenzije “.feature”. Ova nekretnina je naslijeđena od krastavca. Organizacija datoteka u Java konvenciji je također jednako dozvoljena. Možete slobodno organizirati svoje datoteke u skladu s konvencijama Java paketa.

Međutim, smjernice za Maven nalažu da se pohrana ne-Java datoteka vrši odvojeno. Rade se u strukturi src/test/resources . I Java datoteke se čuvaju pod src/main/java .

Ali prema kreatorima Karate Frameworka, oni čvrsto vjeruju da držimo i Java i ne-Java datoteke uporedo strana. Po njima, mnogo je lakše paziti na njih*.java i *.feature fajlovi kada se drže zajedno, umesto da prate standardnu ​​Maven strukturu.

Ovo se može lako uraditi podešavanjem vašeg pom.xml-a na sledeći način (za Maven):

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

Slijedi pregled opće strukture karate okvira:

Sada, pošto ovaj karate okvir koristi Runner fajl, koji je takođe potreban u Cucumberu za pokretanje fajlova karakteristika, tako da će većina pisanja pratiti Cucumber standarde.

Ali, za razliku od Cucumbera, koraci ne zahtevaju jasnu definiciju u karateu i koji , zauzvrat, povećavaju fleksibilnost i jednostavnost operacija. Ne moramo dodavati dodatni ljepilo koje obično moramo dodati kada pratimo Cucumber framework.

Klasa “Runner” se najčešće zove 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 kada govorimo o datoteci .feature , ona sadrži sva testiranja scenarije koje je potrebno testirati kako bi se uvjerio da API radi prema očekivanim zahtjevima.

Opšti *.feature fajl izgleda otprilike kao što je prikazano ispod:

 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

Kreiranje prve osnovne skripte za testiranje karatea

Ovaj odjeljak će vam pomoći da počnete sa stvaranjem vaše prve test skripte, koja će vam biti od pomoći da konvertujete API-je u obliku karate okvira.

Prije nego što napišemo osnovne skripte karate testa,molimo instalirajte sljedeće rekvizite na svoju mašinu:

  • Eclipse IDE
  • Maven. Postavite odgovarajuću Maven putanju.
  • JDK & JRE. Postavite odgovarajuću putanju.

Hajde da pogledamo korak po korak pristup:

#1) Kreirajte novi MAVEN Projekt u Eclipse Editor-u

  • Otvori Eclipse
  • Kliknite na File. Odaberite novi projekat.

  • Odaberite Maven projekat

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

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

#3) Uključi sve vaše zavisnosti.

Naš prvi korak, nakon podešavanja mi ćemo uključiti sve zavisnosti koje će biti potrebne za izvršenje. Zadržat ćemo sve oznake pod POM.xml (pod pretpostavkom da ste već svjesni upotrebe POM.xml).

  • Otvorite POM.xml i kopirajte kod ispod ispod oznake zavisnosti i sačuvajte datoteku.
  com.intuit.karate karate-apache 0.9.5 test   com.intuit.karate karate-junit4 0.9.5 test 

Kliknite ovdje za izvor.

#4) Hajde da razmislimo o scenariju, u čemu ćemo testirati

Skrolaj na vrh