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“.
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
Arba, jei naudojate „Gradle“, jums reikia
testCompile 'com.intuit.karate:karate-junit4:0.6.0' testCompile 'com.intuit.karate:karate-apache:0.6.0'
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 { }
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!