karate framework tutorial
Tento tutoriál predstavuje úvod do Testovania API pomocou Karate Framework. Dozviete sa viac o štruktúre testovacieho skriptu Karate a krokoch na zostavenie prvého testovacieho skriptu:
API je skratka, ktorá označuje Application Programming Interface. Zjednodušene ho môžeme definovať ako softvérového sprostredkovateľa, ktorý umožňuje komunikáciu medzi aplikáciami.
Testovanie API potrebujeme, pretože:
- Výsledky sa zverejňujú rýchlejšie, a preto už nemusíte čakať, či API funguje dobre.
- S rýchlejšou odozvou sa nasadenie týchto rozhraní API tiež zrýchli, a teda umožňuje rýchly čas na vybavenie.
- Včasné zistenie zlyhania, ešte predtým, ako sa vytvorí používateľské rozhranie aplikácie, nám umožňuje zmierniť riziká a opraviť chyby.
- Dodanie vo veľkom meradle možné za kratšie obdobie.
Aby sme mohli pracovať na testovaní API, máme na trhu k dispozícii rôzne nástroje, ako sú Postman, Mocha a Chai. Ukázali dobré výsledky a efektívne využitie na testovanie rozhraní API, sú však výrazne ovplyvnené kódom. Aby ste ich mohli používať, musíte byť technicky zdatní a ovládať programovacie jazyky.
Karate Framework nádherne rieši túto otázku svojich predchádzajúcich softvérových nástrojov.
Čo sa dozviete:
Čo je to rámec karate
Karate? Poďme sa rozprávať karate. Je to ten z Japonska? Co si myslis? Môže sa stať, že to vo svojom voľnom čase vyvinul skvelý Bruce Lee.
Aj keď by sme sa chceli ponoriť do zaujímavých koreňov karate, teraz si povieme niečo o Karate náradie ktorý vyvinul Peter Thomas , jeden z vynikajúcich nástrojov, ktoré prichádzajú na záchranu testerov API.
Rámec karate sleduje štýl písania programu Cucumber, ktorý sa riadi prístupom BDD. Neprogramátori ľahko rozumejú syntaxi. A tento rámec je jediným nástrojom na testovanie API, ktorý kombinoval automatizáciu API a testovanie výkonu do jedného samostatného nástroja.
Poskytuje používateľom možnosť vykonávať testovacie prípady paralelne a vykonávať kontroly JSON a XML.
S týmito informáciami možno odvodiť určité kľúčové body, aby sme podrobnejšie porozumeli nástroju Karate:
- Karate je testovací rámec BDD namiesto TDD.
- Je navrhnutý tak, aby bol ľahký pre neprogramátorov. Táto funkcia mení hru, pretože umožňuje viac používania a prístupu mnohým ľuďom bez ohľadu na ich technické zázemie alebo kapacitu.
- Na napísanie testu, ktorý je veľmi ľahko pochopiteľný, využíva súbor funkcií Cucumber a jazyk Gherkins.
Všetky tieto vlastnosti z neho robia jeden z najpriaznivejších automatizačných nástrojov, ktoré sú dnes k dispozícii.
História rámca karate
Vytvoril ' Peter Thomas ‘ v roku 2017 sa tento softvér zameriava na to, aby boli testovacie funkcie ľahko dostupné pre všetkých. Bol napísaný v jazyku Java a väčšina ľudí čakala, že jeho súbory budú tiež v rovnakom jazyku, našťastie to tak nie je.
Namiesto toho používa súbory Gherkins, čo je výsledkom jeho vzťahu s rámcom Cucumber. Automatizačný softvér je rozšírením uhorky, a preto zdedí pri svojej činnosti použitie súboru Gherkins. Veľký rozdiel medzi nimi je ten, že Karate pri testovaní nevyužíva Javu, ale Cucumber áno.
To je pravý dôvod, prečo je určený pre neprogramátorov, pretože Gherkinsova syntax je super čitateľná a komplexná. Z tohto dôvodu je Karate najvhodnejšie a najodporúčanejšie pre vstup do sveta automatizovaného testovania API.
Nasleduje niekoľko funkcií testovacieho rámca karate:
- Využíva ľahko zrozumiteľný Gherkinsov jazyk.
- Nevyžaduje žiadne technické znalosti programovania, ako je Java.
- Vychádza z populárnych uhorkových štandardov.
- Ľahko sa vytvára rámec.
- Paralelné testovanie je základná funkcionalita, ktorú poskytuje samotné karate, a preto od neho nemusíme závisieť Maven, Gradle , atď.
- Používateľské rozhranie na ladenie testu.
- Volanie súboru funkcií z iného súboru.
- Poskytuje podporu pre testovanie dátových ovládačov, ktoré je vytvárané interne, a preto nie je potrebné závisieť od externých rámcov.
- Vstavané natívne správy o odpočinku. Navyše ho možno integrovať s okurkou pre lepšie správy používateľského rozhrania a väčšiu prehľadnosť.
- Poskytuje internú podporu pre prepínanie konfigurácií v rôznych testovacích prostrediach (QA, Stage, Prod, Pre-Prod).
- Hladká podpora pre integráciu CI / CD, ktorá môže byť užitočná.
- Schopné vybavovať rôzne hovory HTTP:
- Podpora Web Socket
- Požiadavka SOAP
- HTTP
- Spracovanie súborov cookie prehľadávača
- HTTPS
- Údaje vo formáte HTML
- Požiadavka XML
Porovnanie hry Karate Vs Rest-Assured
Buďte si istí : Je to knižnica založená na prostredí Java na testovanie služieb REST. Na písanie riadkov kódu používa jazyk Java. Pomáha pri testovaní mnohých kategórií požiadaviek, čo ďalej vedie k overeniu rôznych kombinácií obchodnej logiky.
Karate Framework : Nástroj založený na uhorke / okurke, používaný na testovanie služieb SOAP & REST.
Nasledujúca tabuľka uvádza niekoľko výraznejších rozdielov medzi programom Rest-Assured a Karate Framework:
S.No | Základ | Karate Framework | ODPOČÍTANÉ |
---|---|---|---|
7 | Podávanie správ | Poskytuje interné prehľady, a preto nemusí byť závislé od externých doplnkov. Môžeme ho dokonca integrovať s doplnkom na hlásenie uhoriek pre lepšie používateľské rozhranie. | Musíte byť závislí na externých doplnkoch ako Junit, TestNG |
jeden | Jazyk | Používa kombináciu uhorky a okurky | Využíva jazyk Java |
dva | Veľkosť kódu | Riadok kódu je zvyčajne menší, pretože má štruktúru podobnú uhorke | Riadok kódu je viac, pretože zahŕňa použitie jazyka Java |
3 | Vyžadujú sa technické znalosti | Neprogramátori môžu ľahko napísať Gherkinsov kód | Na napísanie kódu Java sú potrebné technické znalosti |
4 | Testovanie na základe dát | Je potrebné použiť TestNG alebo ekvivalent na jeho podporu | Na podporu testovania údajov je možné použiť interné značky |
5 | Poskytuje podporu volania SOAP | Áno, poskytuje | Súvisí to iba s požiadavkou REST |
6 | Paralelné testovanie | Áno, paralelné testovanie je ľahko podporované aj pri generovaní paralelných správ | Nie vo veľkej miere. Aj keď sa to ľudia pokúsili urobiť, miera zlyhania je viac ako miera úspešnosti |
8 | Podpora externých údajov vo formáte CSV | Áno, od Karate 0.9.0 | Nie, musíte použiť kód Java alebo knižnicu |
9 | Automatizácia webového používateľského rozhrania | Áno, od Karate 0.9.5 je možná automatizácia web-UI | Nie, nie je to podporované |
10 | Ukážka ZÍSKAJTE | Given param val1 = ‘name1’ | given(). |
Preto, ako to dokazujú vyššie uvedené rozdiely, možno s istotou povedať, že karate je jednou z najjednoduchších vecí, ktoré môže každý urobiť.
Nástroje potrebné na prácu s Karate Framework
Teraz, keď sme dostali základné vedomosti o Karate Framework bodovo, pozrime sa teda na procesy a nástroje potrebné pri nastavovaní prostredia Karate.
# 1) Zatmenie
Eclipse je integrované vývojové prostredie používané v oblasti počítačového programovania. Väčšinou sa používa na programovanie v jazyku Java. Ako už bolo spomenuté, Karate je napísané v Jave, takže dáva väčší zmysel, prečo je Eclipse IDE go-to pre testovací softvér API. Ďalším dôvodom je, že ide o nástroj s otvoreným zdrojovým kódom, a to je celkom pádny dôvod, prečo sa rozhodnúť pre tento nástroj.
Poznámka: Mohli by sme dokonca použiť IntelliJ, Visual Studio a ďalšie rôzne editory dostupné na trhu.
# 2) Maven
Toto je nástroj na automatizáciu zostavovania, ktorý sa používa predovšetkým na vytváranie projektov Java. Je to jeden zo spôsobov nastavenia prostredia Karate a napísania kódu. Kliknutím na ikonu nastavíte svoje Eclipse s požiadavkami Maven tu pre inštaláciu Maven.
Pri práci v Maven používajte závislosti Maven, ktoré vám pomôžu podporiť Karate Framework.
Nasledujúce závislosti sa použijú s Mavenom v pom.xml.
com.intuit.karate karate-apache 0.9.5 test com.intuit.karate karate-junit4 0.9.5 test
Poznámka: Najnovšie verzie môžu byť dostupné v úložisku Maven.
aký sťahovač hudby je najlepší
# 3) Gradle
Gradle je alternatívou k Maven a môže sa používať v rovnakej kapacite. Majú svoje podobnosti a rozdiely, ale môžu byť rovnako použité pri vytváraní prostredia pre naše kódy Karate.
Je ľahšie použiteľný, flexibilný a jeho použitie sa odporúča, ak má naša aplikácia nejaké požiadavky na modularizáciu a správu s množstvom doplnkov. Nastavovací kód Gradle by vyzeral asi takto,
testCompile 'com.intuit.karate:karate-junit4:0.6.0' testCompile 'com.intuit.karate:karate-apache:0.6.0'
Poznámka: Môžete použiť MAVEN alebo GRADLE.
# 4) Nastavenie prostredia Java vo vašom systéme
Potrebujete nastaviť prostredie JDK a JRE, aby ste mohli začať so skriptmi Karate Framework.
Štruktúra testovacieho skriptu karate
Testovací skript karate je známy tým, že vlastní príponu „.feature“. Táto vlastnosť sa dedí z uhorky. Rovnako je povolená organizácia súborov v konvencii Java. Svoje súbory môžete usporiadať podľa konvencií balíkov Java.
Pokyny Maven však nariaďujú, aby sa ukladanie súborov iných ako Java vykonávalo osobitne. Robia sa v a src / test / zdroje štruktúra. A súbory Java sú uchované pod src / main / java .
Pokiaľ však ide o tvorcov rámca Karate, pevne veria, že súbory Java aj Non-Java uchovávame vedľa seba. Podľa nich je oveľa jednoduchšie dávať pozor na súbory * .java a * .feature, keď sú uchované pohromade, a nie sledovať štandardnú štruktúru Maven.
To sa dá ľahko urobiť vylepšením vášho pom.xml nasledujúcim spôsobom (pre Maven):
src/test/java **/*.java ...
Nasleduje náčrt všeobecnej štruktúry Karate Framework:
Pretože teraz tento rámec Karate používa súbor Runner, ktorý je tiež potrebný v Cucumber na spustenie súborov funkcií, väčšina písania sa bude riadiť štandardmi Cucumber.
Ale na rozdiel od Cucumbera kroky nevyžadujú jasnú definíciu v Karate, ktoré naopak zvyšujú flexibilitu a jednoduchosť operácií. Nemusíme pridávať ďalšie lepidlo, ktoré zvyčajne musíme pridať, keď postupujeme podľa rámca Uhorka.
Trieda „Runner“ je pomenovaná väčšinu času TestRunner.java.
Potom bude mať súbor TestRunner.java formu:
import com.intuit.karate.junit4.Karate; import org.junit.runner.RunWith; @RunWith(Karate.class) public class TestRunner { }
A keď už hovoríme o .funkcia Súbor obsahuje všetky testovacie scenáre, ktoré je potrebné testovať, aby sa zabezpečilo, že rozhranie API funguje podľa očakávaných požiadaviek.
Všeobecný súbor * .feature vyzerá asi takto:
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
Vytvorenie prvého základného testovacieho skriptu karate
Táto časť vám pomôže začať s tvorbou vášho úplne prvého Testovacieho skriptu, ktorý vám pomôže previesť API vo forme rámca Karate.
Predtým, ako napíšeme základné testovacie skripty Karate, nainštalujte si na svojom počítači nasledujúce predpoklady:
- Zatmenie IDE
- Maven. Nastavte príslušnú cestu Maven.
- JDK & JRE. Nastavte príslušnú cestu.
Pozrime sa na postup krok za krokom:
# 1) Vytvorte nový MAVEN Projektujte v editore Eclipse
- Otvorte Eclipse
- Kliknite na Súbor. Vyberte Nový projekt.
- Vyberte Projekt Maven
- Vyberte umiestnenie Pracovný priestor.
- Vyberte archetyp (zvyčajne vyberieme „ Maven-archetyp-rýchly štart 1.1 ”Pre jednoduché projekty Maven).
- Zadajte ID skupiny a ID artefaktu (v našom príklade sme použili nasledujúce hodnoty).
- ID skupiny : Karate
- ID artefaktu: KarateTestScriptsSample
- Kliknutím na tlačidlo Dokončiť dokončite nastavenie.
#dva) Po vytvorení budete v okne Prieskumník projektu vidieť nasledujúcu štruktúru.
# 3) Zahrňte všetky svoje závislosti.
Náš úplne prvý krok, po dokončení nastavenia budeme zahrnúť všetky závislosti ktoré sa budú vyžadovať na vykonanie. Ponecháme si celú značku pod POM.xml (za predpokladu, že už viete o použití POM.xml).
- Otvorte súbor POM.xml, skopírujte nižšie uvedený kód pod značku závislosti a uložte súbor.
com.intuit.karate karate-apache 0.9.5 test com.intuit.karate karate-junit4 0.9.5 test
Kliknite tu pre zdroj.
# 4) Poďme si predstaviť scenár, čo budeme testovať v tomto skripte Karate Basic Test.
Scenár:
S tým budeme testovať API URL.
Cesta: api / users / 2
Metóda: ZÍSKAJTE
A musíme to potvrdiť , či žiadosť vracia a Úspešný kód (200) alebo nie.
Zjednodušene povedané, iba otestujeme vzorové API, aby sme zistili, či sa úspešne vykonáva.
Poznámka: Berieme vzorové API, ktoré je k dispozícii na testovanie. Môžete si zvoliť ľubovoľnú PATH alebo môžete odkazovať na svoje API.
Kliknite tu pre zdroj.
# 5) Teraz by našim ďalším krokom bolo vytvorenie .funkcia spis.
Ako sa uvádza v úvodnej časti, dokument .funkčný súbor je majetok, ktorý sa zdedil po uhorke. V tomto súbore vypíšeme testovacie scenáre, ktoré je potrebné vykonať pri vykonávaní Testovania API.
- Prejdite do priečinka src / test / java vo vašom projekte.
- Kliknite na ňu pravým tlačidlom myši a vytvorte nový súbor - userDetails.feature. Potom kliknite na tlačidlo Dokončiť.
Teraz uvidíte v priečinku nasledujúci súbor src / test / java
The Zelená farebná ikona pripomína .funkcia fi le v Okurke, ktorú sme práve vytvorili.
- Po vytvorení súboru teraz napíšeme naše testovacie scenáre, ktoré budú popísané v nasledujúcej časti.
# 6) Keďže máme scenár a prázdne miesto. vlastnosť súbor pripravený, poďme začať s našim prvým skriptom. Začnime programovať
Do súboru userDetails.feature, ktorý sme vytvorili v kroku č. 5, napíšte nasledujúci riadok kódu:
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
Pokúsme sa pochopiť komponenty, ktoré sú napísané vo vyššie uvedenom súbore:
- Funkcia: Kľúčové slovo vysvetľuje názov funkcie, ktorú testujeme.
- Pozadie: Toto je voliteľná časť, ktorá sa považuje za nevyhnutnú časť. To sa dá použiť na definovanie toho, čo je potrebné na otestovanie API. Obsahuje Záhlavie, URL a PARAM možnosti.
- Scenár: Každý súbor funkcií, ktorý uvidíte, bude mať aspoň jednu funkciu (aj keď môže poskytnúť) viacnásobný scenáre). Je to popis testovacieho prípadu.
- Dané: Je to krok, ktorý je potrebné vykonať pred vykonaním iného testovacieho kroku. Je potrebné vykonať povinnú akciu.
- Kedy: Určuje podmienku, ktorá by mala byť splnená, aby sa mohol vykonať ďalší krok testu.
- Potom: Hovorí nám, že čo by sa malo stať v prípade stavu uvedeného v Kedy je spokojný.
Poznámka: Všetky vyššie uvedené kľúčové slová sú z jazyka Gherkins. Jedná sa o štandardný spôsob písania testovacích skriptov pomocou programu Cucumber.
A niektoré ďalšie slová použité v súbore funkcií sú:
- 200: Je to kód stavu / odpovede, ktorý očakávame (klik tu pre zoznam stavových kódov)
- ZÍSKAJTE: Je to metóda API ako POST, PUT atď.
Dúfame, že toto vysvetlenie bolo pre vás ľahké pochopiť. Teraz budete môcť súvisieť s tým, čo je presne napísané vo vyššie uvedenom súbore.
Teraz musíme vytvoriť súbor TestRunner.java
Ako je vysvetlené v predchádzajúcej časti, Cucumber potrebuje súbor Runner, ktorý by bol potrebný na spustenie .funkcia súbor, ktorý obsahuje testovacie scenáre.
- Prejdite do priečinka src / test / java vo vašom projekte
- Kliknite na ňu pravým tlačidlom myši a vytvorte nový súbor Java: TestRunner.java
- Po vytvorení súboru umiestnite pod ňu nasledujúce riadky kódu:
import org.junit.runner.RunWith; import com.intuit.karate.junit4.Karate; @RunWith(Karate.class) public class TestRunner { }
- Test Runner je súbor, ktorý sa teraz vykoná za účelom vykonania požadovaného scenára, ktorý bol napísaný v kroku č. 5.
# 7) Teraz sme pripravení na oba súbory TestRunner.Java a userDeatils.feature. Jedinou úlohou, ktorá nám zostáva, je Bež scenár.
- Prejdite do súboru TestRunner.java a kliknite pravým tlačidlom myši na súbor, ako je znázornené na nasledujúcom obrázku.
- Vyberte Spustiť ako -> Test Junit
- Po výbere začnete teraz pozorovať, že testovací prípad sa začal.
- Počkajte na vykonanie testovacieho skriptu. Po dokončení budete v okne pozorovať niečo podobné, ako je zobrazené na obrázku nižšie.
- Na záver môžeme povedať, že sme úspešne vytvorili náš úplne prvý základ Skript testu pomocou Karate Framework.
# 8) Rámec Karate poskytuje ukážku správy HTML o vykonaní, ktoré bolo vykonané.
stránka na pozeranie anime zadarmo
- Prejdite do cieľového priečinka -> surefire-reports-> Tu uvidíte správu HTML, ktorú môžete otvoriť.
** Navrhujeme vám tiež otvoriť to isté pomocou prehliadača Chrome, aby ste mali lepší vzhľad a dojem.
- Zobrazí sa vám nasledujúca správa HTML Scenáre a test ktorý bol vykonaný pre uvedený scenár:
Záver
V tomto tutoriáli sme sa zaoberali testovaním API, rôznymi testovacími nástrojmi dostupnými na trhu a tým, ako je Karate Framework v porovnaní so svojimi kolegami lepšou voľbou.
Pri vytváraní nášho prvého základného testovacieho skriptu sme postupovali krok za krokom. Začali sme tvorbou zákl Projekt Maven v Eclipse IDE na vytvorenie súboru .feature, ktorý obsahuje všetky testovacie scenáre a súboru Runner na vykonanie testovacieho prípadu uvedeného v súbore .feature.
Na konci viacerých krokov sme mohli vidieť správu o vykonaní výsledkov testu.
Dúfame, že tento výukový program pomohol začiatočníkom naučiť sa, ako zostaviť svoj prvý testovací skript pomocou rámca Karate Framework a vykonať testovanie API. Tento podrobný postupný postup je úžasným spôsobom, ako spustiť a vykonať rôzne testy rozhrania API.
Odporúčané čítanie
- Ako nastaviť testovací rámec Node.js: Výukový program Node.js
- Výukový program Parasoft SOAtest: Bezskriptový testovací nástroj API
- Výukový program Mockito: Rámec Mockito pre simuláciu pri testovaní jednotiek
- Výukový program pre testovanie API: Kompletný sprievodca pre začiatočníkov
- Výukový program TestNG: Úvod do rámca TestNG
- Výukový program Jest - Testovanie jednotky JavaScript pomocou rámca Jest
- Výukový program pre deštruktívne testovanie a nedeštruktívne testovanie
- Ako používať Postman na testovanie rôznych formátov API?