Аўтаматызаванае тэсціраванне API стала простым з каратэ

Калі вы хочаце прыняць удзел у аўтаматызаваным тэсціраванні API, але не маеце праграмнага забеспячэння, вы можаце паспрабаваць каратэ!

Каратэ быў выпушчаны ў якасці інструмента з адкрытым зыходным кодам Інтуітыўны . Інструмент прызначаны для аўтаматызаванага тэсціравання API і мае ўсе неабходныя функцыі, каб зрабіць тэставанне API лёгкім і фактычна прыемным.

У адрозненне ад іншых аўтаматызаваных інструментаў тэсціравання API, якія патрабуюць немалой колькасці кадавання, нават проста для выканання асноўных рэчаў, каратэ працуе нестандартна. Вы можаце ствараць самыя складаныя аперацыі адказу-запыту, не ведаючы ніводнай мовы праграмавання. Усё, што вам трэба зрабіць, гэта напісаць файл функцыі з выкарыстаннем звычайнага тэксту ў стылі Карнішона.


Таму што каратэ - гэта поўная DSL і сядзіць зверху Агурок-JVM , вы можаце запускаць тэсты і ствараць справаздачы, як любы стандартны праект Java, але замест таго, каб пісаць код Java, вы пішаце тэсты на мове, распрацаванай для таго, каб зрабіць працу з HTTP, JSON ці XML простым і простым.

Хоць для выкарыстання каратэ няма ніякіх папярэдніх умоў, карысна, калі вы добра ведаеце HTTP, JSON, XML, JsonPath і XPath і JavaScript.


У гэтым пасце мы разгледзім некаторыя тыповыя аперацыі, якія вы звычайна выконвалі б у аўтаматызаваным тэсціраванні API, але спачатку кароткае кіраўніцтва па наладжванні асяроддзя для каратэ.

Мэйвэн

Калі вы выкарыстоўваеце Maven, вам патрэбныя дзве наступныя залежнасці


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

Градле

Акрамя таго, калі вы выкарыстоўваеце Gradle, вам трэба

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

Структура тэчкі

Скрыпт тэсту на каратэ мае пашырэнне файла .feature гэта стандарт, за якім ідзе Агурок. Вы можаце ўпарадкаваць свае файлы, выкарыстоўваючы звычайныя звесткі пра пакеты Java.


Традыцыя Maven заключаецца ў наяўнасці зыходных файлаў, якія не з'яўляюцца Java, у асобным src/test/resources структура папак - але стваральнікі інструмента каратэ рэкамендуюць трымаць іх побач з вашым *.java файлы.

Як і Агурок, у вас павінен быць клас 'Runner', які запускае файлы. У адрозненне ад агурка, аднак, ніякіх вызначэнняў этапаў няма! І ў гэтым магія каратэ.

Каб выкарыстоўваць клас TestRunner.java для выканання файла функцый, вам трэба мець раздзел зборкі ў файле 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








І ваш клас TestRunner.java будзе выглядаць так

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

Простае аўтаматызаванае тэставанне API з каратэ

Дапусцім, вы тэстуеце API (https://some-api.com/api/users), які вяртае спіс карыстальнікаў у фармаце JSON

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

Ваш файл функцый каратэ будзе выглядаць так:

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'

І ўсё - вельмі сцісла і дакладна, а галоўнае, без кода!


Каратэ пастаўляецца з вельмі багатым наборам карысных функцый, якія дазваляюць вельмі лёгка і хутка выконваць аўтаматызаванае тэставанне API. У наступных паведамленнях мы больш падрабязна вывучым гэты дзіўны інструмент і прывядзем прыклады таго, як зрабіць практычна ўсё, што трэба пры тэставанні API!