Ĉi tiu lernilo estas enkonduko al API-Testado per Karateca Kadro. Lernu pri la strukturo de Karate Test Script kaj paŝoj por konstrui la unuan testan skripton:

API estas akronimo kiu signifas Interfacon pri Aplikaĵo-Programado. En simplaj terminoj, ni povas difini ĝin kiel programaran peranto kiu permesas komunikadon inter aplikaĵoj.

Ni bezonas API-testadon ĉar:

  • Rezultoj estas publikigitaj pli rapide, tial ne plu atendas por vidi ĉu la API funkcias bone.
  • Kun la pli rapida respondo, la disfaldiĝo de ĉi tiuj API-oj ankaŭ fariĝas pli rapida, tial ebligas rapidan tempodaŭron.
  • Frua malsukcesa detekto, eĉ antaŭ ol la UI de la aplikaĵo estas kreita, permesu al ni mildigi riskojn kaj korekti misfunkciadojn.
  • Larĝskala livero eblas en pli mallonga periodo.

Por povi labori pri API-Testado, ni havas diversajn ilojn disponeblajn en la merkato kiel Postman, Mocha kaj Chai. Ĉi tiuj pruvis bonajn rezultojn kaj efikan uzadon por testado de API-oj, tamen, ĉi tiuj estas forte influitaj de kodo. Por povi uzi ĉi tiujn, oni devas esti teknike solida kaj familiara kun programlingvoj.

La Karate Framework bele solvas ĉi tiun problemon de siaj antaŭaj programaj iloj.

Kio Estas Karateca Kadro

Karateo? Ni parolu pri Karateo. Ĉu ĝi estas el Japanio? Kion vi pensas? Eble tio estas la granda Bruceĉi tiu Karateo Baza Testa Skripto.

Scenaro:

Ni testos API kun ĉi tiu URL.

Pado: api/users/2

Metodo: GET

Kaj ni devas validigi , ĉu la peto resendas Sukceskodon ( 200) aŭ ne.

En simplaj terminoj, ni nur testos ekzemplan API por vidi ĉu ĝi estas sukcese ekzekutita aŭ ne.

Noto: Ni prenas specimenon de API disponebla por testado. Vi povus elekti iun ajn PATH aŭ povus referenci al via API.

Alklaku ĉi tie por fonto.

#5) Nun nia sekva paŝo estus krei .feature dosiero.

Kiel diskutite en la enkonduka sekcio, la .feature dosiero estas la posedaĵo kiu estis heredita de Kukumo. En ĉi tiu dosiero, ni skribos la provajn scenarojn, kiuj devas esti efektivigitaj por plenumi la API-Testadon.

  • Iru al Dosierujo src/test/java en via projekto.

  • Dekstre Klaku sur ĝi kaj kreu novan dosieron – userDetails.feature. Tiam alklaku la butonon Fini.

Nun vi vidos la sekvan dosieron sub la dosierujo src/test/java

La Verda kolora piktogramo similas al la .karakteriza dosiero en Kukumo, kiun ni ĵus kreis.

  • Post kiam la dosiero estas kreita, nun ni skribos niajn provajn scenarojn, kiuj estos diskutitaj en la sekva sekcio.

#6) Ĉar ni havas la scenaron kajla malplena . trajto dosiero preta, nun ni komencu kun nia unua skripto. Ni komencu kodi

Skribu la sekvan linion de Kodo sub userDetails.feature-dosiero, kiun ni kreis en Paŝo n-ro 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

Ni provu kompreni la komponantoj, kiuj estas skribitaj en la ĉi-supra dosiero:

  • Trajto: Ŝlosilvorto klarigas la nomon de la funkcio, kiun ni testas.
  • Fono: Ĉi tio estas laŭvola sekcio, kiu estas traktata kiel Antaŭkondiĉa sekcio. Ĉi tio povas esti uzata por difini kion ĉio necesas por testi la API. Ĝi enhavas ĈASTRON, URL & PARAM -opcioj.
  • Scenaro: Ĉiu trajtodosiero kiun vi vidos havos almenaŭ unu funkcion (kvankam ĝi povas doni multoblajn scenarojn) . Ĝi estas la priskribo de la testkazo.
  • Donite: Ĝi estas la paŝo, kiu devas esti efektivigita antaŭ ol iu alia testpaŝo estas plenumita. Ĝi estas deviga ago farenda.
  • Kiam: Ĝi precizigas la kondiĉon, kiun oni devas plenumi por plenumi la sekvan testan paŝon.
  • Tiam: Ĝi diras al ni, ke kio devus okazi se la kondiĉo menciita en la Kiam estas kontentigita.

Noto: Ĉiuj supre menciitaj ŝlosilvortoj estas el la lingvo Gherkins. Ĉi tiuj estas la norma maniero verki la testskriptojn per Kukumo.

Kaj pliaj vortoj uzataj en la ĉefdosiero estas:

  • 200: Ĝi estas la stato/responda kodo, kiu ni estasatendante (Alklaku ĉi tie por la listo de statuskodoj)
  • GET: Ĝi estas la API-metodo kiel POST, PUT, ktp.

Ni esperas ĉi tiun klarigon estis facile por vi kompreni. Nun vi povos rilati al tio, kio precize estas skribita en la supra dosiero.

Nun ni devas krei TestRunner.java dosieron

Kiel klarigite en la supre. sekcio, Kukumo bezonas Runner-dosieron kiu estus bezonata por ekzekuti la dosieron .feature kiu enhavas la testajn scenarojn.

  • Iru al Dosierujo src/test/java en via projekto

  • Dekstre Klaku sur ĝi kaj kreu Novan Java-dosieron: TestRunner.java
  • Post kiam la dosiero estas kreita, metu la sekvajn kodliniojn sub ĝin:
 import org.junit.runner.RunWith; import com.intuit.karate.junit4.Karate; @RunWith(Karate.class) public class TestRunner { }
  • Test Runner estas la dosiero, kiu nun estos ekzekutita por plenumi la dezirata scenaro kiu estis skribita sub Paŝo #5.

#7) Nun ni estas pretaj kun ambaŭ la dosieroj TestRunner.Java kaj userDeatils.trajto. La nura tasko restanta por ni estas Ruli la skripton.

  • Iru al TestRunner.java dosiero kaj dekstre alklaku la dosieron kiel montrite en la suba bildo.

  • Elektu Run As -> Junit Test
  • Nun, unufoje elektita, vi komencos observi ke la testkazo nun komenciĝis.
  • Atendu la ekzekuto de la testa skripto. Post tio vi observos ion kiel montrita en la suba bildo en via fenestro.

  • Fine, ni povas dirike ni sukcese kreis nian plej unuan bazan Testa Skripto uzante la Karate-Kadron.

#8) Laste, la Karateo. kadro ankaŭ donas HTML-raportprezenton por la ekzekuto kiu estis farita.

  • Iru al Cela Dosierujo -> certe-raportoj-> Ĉi tie vi vidos vian HTML-raporton, kiun vi povas malfermi.

** Ni ankaŭ sugestus, ke vi malfermu la saman per Chrome. Retumilo por pli bona aspekto.

  • Sekva HTML-Raporto estos montrita al vi prezentante Scenaroj & Testo kiu estis efektivigita por la menciita scenaro:

Konkludo

En ĉi tiu lernilo, ni diskutis API-testadon, malsamajn provojn iloj disponeblaj en la merkato, kaj kiel la Karateca Kadro estas pli bona elekto kompare kun ĝiaj ekvivalentoj.

Ni sekvis paŝon post paŝo por krei nian unuan bazan testan skripton. Ni komencis krei bazan Maven-projekton en Eclipse IDE por krei .feature-dosieron, kiu enhavas la tutan testan scenaron kaj Runner-dosieron por ekzekuti la testkazon menciitan en la .feature-dosiero.

Ĉe la fino de la multoblaj paŝoj, ni povis vidi la ekzekutaporton de la testrezultoj.

Ni esperas, ke ĉi tiu lernilo estis helpema por la komencantoj lerni kiel konstrui sian unuan testan skripton per la Karateca Kadro. kaj efektivigi API-Testadon. Ĉi tiu detala paŝo post paŝoaliro estas mirinda maniero ruli kaj efektivigi diversajn testojn sur la API.

SEKVA>>

Lee disvolvis ĉi tion en sia libera tempo.

Kvankam ni ŝatus enprofundiĝi en la interesajn radikojn de Karateo, nuntempe, ni parolu pri la Karate-ilo kiu estis evoluigita de Peter Thomas , unu el la bonegaj iloj kiuj venas al la savo de API-testiloj.

Karatekadro sekvas la Cucumber-stilon de verkado de la programo kiu sekvas la BDD-aliron. La sintakso estas facile komprenebla de neprogramistoj. Kaj ĉi tiu kadro estas la sola API-testilo, kiu kombinis API-aŭtomatigon kaj agadon-testadon en ununuran memstaran ilon.

Ĝi provizas la uzantojn la kapablon ekzekuti la testkazojn en Paralele kaj plenumi la JSON & XML-kontroloj.

Per ĉi tiuj informoj, iuj ŝlosilaj punktoj povas esti deduktitaj por pli detale kompreni la Karate-ilon:

  • Karateo estas BDD-prova kadro anstataŭe. de TDD.
  • Ĝi estas desegnita por esti facila por neprogramistoj. Ĉi tiu funkcio estas ludŝanĝilo ĉar ĝi permesas pli da uzado kaj aliro de multaj homoj sendepende de ilia teknika fono aŭ kapablo.
  • Ĝi uzas la funkcio-dosieron Kukumo kaj la lingvo Gherkins por skribi la teston, kiu estas. tre facile komprenebla.

Ĉiuj ĉi tiuj funkcioj faras ĝin unu el la plej favoraj aŭtomatigaj iloj disponeblaj hodiaŭ.

History Of Karate Framework

Kreita de ' Peter Thomas en 2017, ĉi tiu programaro celas fari testadonfunkcioj facile haveblaj por ĉiuj. Ĝi estis skribita en Java kaj plej multaj homoj atendis, ke ĝiaj dosieroj ankaŭ estu en la sama lingvo, tamen, feliĉe, tio ne estas la kazo.

Prefere, ĝi uzas Gherkins dosierojn, kio estas rezulto de sia rilato kun la Kukuma kadro. La aŭtomatiga programaro estas etendo de Kukumo, tial heredas la uzon de Gherkins-dosiero en sia funkciado. La granda diferenco inter la du estas ke Karate ne uzas Java dum testado, sed Kukumo faras.

Tio estas la kialo, kial ĝi servas al neprogramistoj ĉar la Gherkins-sintakso estas superlegebla kaj ampleksa. Jen la kialo, kial Karateo estas plej taŭga kaj rekomendita por eniri la mondon de aŭtomata API-testado.

La jenaj estas kelkaj trajtoj de la Karate-Testa Kadro:

  • Uzas facile kompreneblan lingvon Gherkins.
  • Ĝi postulas neniujn teknikajn programajn sciojn kiel Java.
  • Ĝi baziĝas sur la popularaj normoj de Kukumo.
  • Facile krei kadron.
  • Paralela testado estas la kerna funkcieco kiu estas provizita de la Karateo mem, tial ni ne bezonas dependi de Maven, Gradle , ktp.
  • UI por sencimigi la Teston.
  • Voki funkcio-dosieron el alia dosiero.
  • Provizas subtenojn por la Testado de Datumoj-Sportado, kiu estas konstruita interne, do ne necesas dependi de eksteraj kadroj.
  • Enkonstruita Denaska RipozoRaportoj. Krome, ĝi povas esti integrita kun la Kukumo por pli bonaj UI-Raportoj kaj pli da klareco.
  • Provizas internan subtenon por ŝanĝi agordon tra malsamaj testaj medioj (QA, Stage, Prod, Pre-Prod).
  • Perfekta subteno por CI/KD-integriĝo kiu povas esti utila.
  • Kapabla pritrakti diversajn HTTP-alvokojn:
    • Subteno de Web Socket
    • SOAP-peto
    • HTTP
    • Retumila kuketotraktado
    • HTTPS
    • HTML-formaj datumoj
    • XML-peto

Komparante Karateon Vs Rest-Assured

Rest Assured : Ĝi estas Java-bazita biblioteko por testi la REST-servojn. Ĝi uzas Javan lingvon por skribi la liniojn de kodo. Ĝi helpas en testado de multaj petaj kategorioj, kiuj plie rezultigas la konfirmon de malsamaj komercaj logikkombinaĵoj.

Karate Framework : Kukumo/Gherkins bazita ilo, uzata por testado por SAPO & REST-servoj.

La sekva tabelo listigas kelkajn pli elstarajn diferencojn inter Rest-Assured & Karatekadro:

S.No Bazo Karatekadro REST-Assured
1 Lingvo Ĝi uzas kombinaĵon de Kukumo kaj Koronidoj Ĝi uzas Javan Lingvon
2 Kodograndeco Kutime, la linio de kodo estas malpli, ĉar ĝi sekvas Kukum-similan strukturon Linio de kodo estas pli, ĉar ĝi implikas lauzado de Java lingvo
3 Teknika Scio bezonata Neprogramistoj povas facile skribi la Gherkins-kodo Teknika scio estas bezonata por skribi Java-kodon
4 Data-Driven Testing Necesas uzi TestNG aŭ ekvivalenton por subteni la saman Endomaj etikedoj povas esti uzataj por subteni datumtestadon
5 Ĉu ĝi provizas SOAP-vokan subtenon Jes, ĝi provizas Ĝi rilatas nur al REST-peto
6 Paralela Testado Jes, paralela testado facile subtenas kun la paralela raportgenerado ankaŭ Ne grandparte. Kvankam homoj provis fari tion, la malsukcesa indico estas pli ol la sukcesprocento
7 Raportado Ĝi disponigas internan raportadon, tial ne bezonas esti dependa de eksteraj kromprogramoj. Ni eĉ povas integri ĝin kun Kukuma raporta kromaĵo por pli bona UI. Necesas dependi de Eksteraj Kromaĵoj kiel Junit, TestNG
8 CSV-subteno por eksteraj Datumoj Jes, de Karate 0.9.0 Ne, devas uzi Java Kodon aŭ bibliotekon
9 Retinterfaco-aŭtomatigo Jes, de Karate 0.9.5 Web-UI-aŭtomatigo eblas Ne, ĝi ne estas subtenata
10 Ekzempla 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"));

Tial, kiel pruvis la diferencoj supre, estas sekure diri, ke Karateo estas unu el la plej facilaj aferoj, kiujn iu ajn povas fari.

Iloj Bezonataj Por Labori Kun Karatekadro

Nun, ĉar ni akiris nian bazan scion pri Karatekadro ĝuste, ni rigardu la procezojn kaj ilojn necesajn por starigi la Karatean medion.

#1) Eclipse

Eklipso estas Integrita Evolua Medio uzata. en la kampo de komputila programado. Ĝi estas plejparte uzata por Java Programado. Kiel menciite antaŭe, Karateo estas skribita en Java, do havas pli sencon, kial Eclipse estas la IDE por la API-testprogramaro. Alia kialo estas, ke ĝi estas malfermfonta ilo, kaj ĉi tio estas sufiĉe forta kialo por elekti ĉi tiun ilon.

Noto: Ni eĉ povus uzi IntelliJ, Visual Studio kaj aliajn malsamajn. redaktiloj disponeblaj en la merkato.

#2) Maven

Ĉi tio estas konstruaŭtomatiga ilo uzata ĉefe por konstrui Java-projektojn. Ĝi estas unu maniero agordi Karate-medion kaj skribi la kodon. Por agordi vian Eclipse kun Maven-postuloj, vi povas alklaki ĉi tie por Maven-instalado.

Dum vi laboras en Maven, uzu Maven-dependaĵojn kiuj helpus vin subteni Karate Framework.

La jenaj dependecoj estos uzataj kun Maven en pom.xml.

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

Noto: La plej novaj versioj povusestu disponebla en la deponejo de Maven.

#3) Gradle

Gradle estas alternativo al Maven kaj povas esti uzata en egala kapablo. Ili havas siajn similecojn kaj diferencojn sed povas esti egale uzataj por starigi medion por niaj Karateaj kodoj.

Ĝi estas pli facile uzebla, fleksebla, kaj estas rekomendinda uzi kiam nia aplikaĵo havas iujn modulajn kaj administrajn postulojn kun amaso da kromprogramoj. La agordokodo de Gradle aspektus kiel ĉi tio,

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

Noto: Vi povus aŭ uzi MAVEN GRADLE.

#4) Agordo de Java Medio en via Sistemo

Necesas agordi la medion JDK kaj JRE por komenci kun la skriptoj de Karate Framework.

Strukturo de Karatetesta Skripto.

Karatetesta skripto estas konata pro la posedo de la etendaĵo ".feature". Ĉi tiu posedaĵo estas heredita de Kukumo. La organizado de dosieroj en Java-konvencio ankaŭ estas egale permesita. Vi rajtas organizi viajn dosierojn laŭ la konvencioj pri Java pakaĵoj.

Tamen la gvidlinioj de Maven instrukcias, ke la konservado de ne-Java dosieroj estu farita aparte. Ili estas faritaj en src/test/resources strukturo. Kaj la Java-dosieroj estas konservitaj sub src/main/java .

Sed laŭ la kreintoj de la Karateca Kadro, ili forte kredas, ke ni tenas ambaŭ Javajn kaj ne-Javajn dosierojn apude. flanko. Laŭ ili, estas multe pli facile atenti pri la*.java kaj *.feature dosieroj kiam ili estas konservitaj kune, anstataŭ sekvi la norman strukturon de Maven.

Ĉi tio povas esti facile farita per tajlado de via pom.xml jene (Por Maven):

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

Sekvas la skizo de la ĝenerala strukturo de Karatekadro:

Nun, ĉar ĉi tiu Karatekadro uzas la Runner-dosiero, kiu ankaŭ estas bezonata en Kukumo por ruli la karakterizajn dosierojn, do plejparto de la verkado sekvos la normojn de Kukumo.

Sed, male al Kukumo, la paŝoj ne postulas klaran difinon en Karateo kaj kiu , siavice, plibonigas flekseblecon kaj facilecon de operacioj. Ni ne bezonas aldoni la kroman gluon, kiun ni kutime devas aldoni kiam ni sekvas la Kukumo-kadron.

La klaso “Runner” estas plejofte nomita TestRunner.java.

Tiam la dosiero TestRunner.java alprenos la formon de:

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

Kaj parolante pri la dosiero .feature , ĝi enhavas ĉiujn provojn. scenaroj, kiuj devas esti provitaj por certigi, ke la API funkcias laŭ la atendataj postuloj.

Ĝenerala dosiero *.feature aspektas kiel ĉi sube:

 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

Krei La Unuan Bazan Testan Skripton de Karateo

Ĉi tiu sekcio helpos vin komenci kun la kreado de via unua Testa Skripto, kiu estos helpema por vi konverti API-ojn en la formo de Karateca kadro.

Antaŭ ol ni verkas la bazajn Karatetestskriptojn,bonvolu instali la jenajn postulojn sur via maŝino:

  • Eclipse IDE
  • Maven. Agordu la taŭgan vojon de Maven.
  • JDK & JRE. Fiksu la taŭgan vojon.

Ni rigardu la paŝon post paŝo:

#1) Kreu nova MAVEN Projekto en Eclipse Editor

  • Malfermu Eklipso
  • Alklaku Dosiero. Elektu Novan Projekton.

  • Elektu Maven-Projekton

  • Elektu la Laborspaco-loko.
  • Elektu la Arketipon (kutime ni elektas " Maven-archetype-quickstart 1.1 " por simplaj Maven-projektoj).
  • Provizo. la Grupo ID & la Artefakto ID (ni uzis la sekvajn valorojn en nia ekzemplo).
    • Grupa ID : Karate
    • Artefakto ID: KarateTestScriptsSample
  • Alklaku Fini por kompletigi la agordo.

#2) Unufoje kreita, nun vi povos vidi la jenan strukturon en la fenestro de Projekto-Esplorilo.

#3) Inkluzivi ĉiujn viajn dependecojn.

Nia unua paŝo, post la agordo ni devos inkluzivi ĉiujn dependecojn kiuj estos bezonataj. por la ekzekuto. Ni konservos la tutan etikedon sub la POM.xml (Supoze, ke vi jam konscias pri la uzado de POM.xml).

  • Malfermu POM.xml kaj kopiu la suban kodon sub la dependeca etikedo kaj konservu la dosiero.
  com.intuit.karate karate-apache 0.9.5 test   com.intuit.karate karate-junit4 0.9.5 test 

Alklaku ĉi tie por fonto.

#4) Ni cerbumu pri la scenaro, en kio ni provos

Rulumi supren