Автоматическое тестирование API стало проще с карате

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

Каратэ было выпущено как инструмент с открытым исходным кодом компанией Intuit . Инструмент предназначен для использования для автоматического тестирования API и имеет все необходимые функции, чтобы сделать тестирование API легким и действительно приятным.

В отличие от других инструментов автоматизированного тестирования API, которые требуют изрядного количества кода, даже просто для выполнения базовых задач, Karate работает «из коробки». Вы можете создавать самые сложные операции типа запрос-ответ, не зная ни одного языка программирования. Все, что вам нужно сделать, это написать файл функций, используя простой текстовый стиль Gherkin.


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

Хотя предварительных условий для использования Karate нет, полезно, если у вас есть базовые представления о HTTP, JSON, XML, JsonPath, XPath и JavaScript.


В этом посте мы рассмотрим некоторые типичные операции, которые вы обычно выполняете при автоматическом тестировании API, но сначала дадим краткое руководство по настройке вашей среды для карате.

Maven

Если вы используете Maven, вам понадобятся две следующие зависимости


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

Gradle

В качестве альтернативы, если вы используете 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 файлы.

Как и в случае с Cucumber, у вас должен быть класс «Runner», который запускает файлы функций. Однако, в отличие от Cucumber, здесь нет определений шагов! И в этом магия каратэ.

Чтобы использовать класс 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'

И все - очень лаконично и по делу и, самое главное, никакого кода!


Karate поставляется с очень богатым набором полезных функций, которые позволяют очень легко и быстро выполнять автоматическое тестирование API. В будущих публикациях мы углубимся в этот удивительный инструмент и дадим примеры того, как делать практически все, что вам нужно, при тестировании API!