Automatinis API testavimas tapo lengvas naudojant „Karate“

Jei norėtumėte įsitraukti į automatizuotą API testavimą, bet neturite programavimo fono, galbūt norėsite leisti „Karate“!

Karate kaip atviro kodo įrankį išleido Intuitas . Įrankis sukurtas naudoti automatizuotam API testavimui ir turi visas reikalingas funkcijas, kad API testavimas būtų vėjuotas ir tikrai malonus.

Skirtingai nuo kitų automatizuotų API testavimo įrankių, kuriems reikia nemažai koduoti, net ir norint atlikti pagrindinius dalykus, „Karate“ veikia iš dėžutės. Galite sukurti sudėtingiausias užklausos ir atsakymo operacijas, nemokėdami jokios programavimo kalbos. Viskas, ką jums reikia padaryti, tai parašyti failą naudodamas paprasto teksto Gherkin stilių.


Nes „Karate“ yra visiškas DSL ir sėdi ant jo Agurkas-JVM , galite vykdyti bandymus ir generuoti ataskaitas, kaip ir bet kuris kitas standartinis „Java“ projektas, tačiau užuot rašę „Java“ kodą, testus rašote ta kalba, kuria siekiama lengvai ir paprastai tvarkyti HTTP, JSON ar XML.

Nors nėra išankstinių sąlygų naudoti „Karate“, tai padeda, jei turite pagrindinį supratimą apie HTTP, JSON, XML, JsonPath ir XPath bei „JavaScript“.


Šiame įraše apžvelgsime keletą tipiškų operacijų, kurias paprastai atliktumėte atlikdami automatizuotą API testavimą, tačiau pirmiausia trumpas vadovas, kaip nustatyti savo aplinką „Karate“.

Mavenas

Jei naudojate „Maven“, jums reikia šių dviejų priklausomybių


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

Greideris

Arba, jei naudojate „Gradle“, jums reikia

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

Aplanko struktūra

Karate testo scenarijaus failo plėtinys .feature kuris yra standartas, kurio laikosi Agurkas. Galite laisvai tvarkyti failus naudodami įprastas „Java“ paketų sutartis.


„Maven“ tradicija yra turėti ne „Java“ šaltinio failus atskirame src/test/resources aplanko struktūra, tačiau „Karate“ įrankio kūrėjai rekomenduoja juos laikyti šalia savo *.java failus.

Kaip ir „Agurkai“, turite turėti „Runner“ klasę, kuri paleidžia funkcinius failus. Skirtingai nuo agurkų, nėra žingsnių apibrėžimų! Ir tai yra Karate magija.

Norėdami naudoti „TestRunner.java“ klasę, kad įvykdytumėte funkcijos failą, turite turėti komponavimo skyrių faile pom.xml.



4.0.0
Tutorials
Karate
1.0-SNAPSHOT




com.intuit.karate

karate-apache

0.6.0.4





com.intuit.karate

karate-junit4

0.6.0.4










src/test/java






**/*.java








Jūsų „TestRunner.java“ klasė atrodys taip

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

Paprastas automatizuotas API testavimas naudojant „Karate“

Tarkime, kad bandote API (https://some-api.com/api/users), kuri pateikia naudotojų sąrašą JSON formatu

[
{
'id': 1,
'name': 'FirstUser',
'password': 'User1Pass'
},
{
'id': 2,
'name': 'SecondUser',
'password': 'User2Pass'
} ]

„Karate“ funkcijos failas atrodys taip:

Feature: Test User API
Scenario: Fetch all users
Given url 'https://some-api.com/api/users'
When method GET
Then status 200
And assert response.length == 2
And match response[0].name == 'FirstUser'

Ir viskas - labai glausta ir aiški, o svarbiausia - jokio kodo!


„Karate“ yra labai turtingas naudingų funkcijų rinkinys, kuris leidžia labai lengvai ir greitai atlikti automatizuotą API testavimą. Būsimuose įrašuose mes daugiau įsigilinsime į šį nuostabų įrankį ir pateiksime pavyzdžių, kaip padaryti viską, ko jums reikia bandant API!