БУДЬТЕ уверены – это библиотека Java с открытым исходным кодом, которая облегчает автоматическое тестирование конечных точек API. В этом посте я хочу пройтись по шагам, необходимым для запуска и запуска некоторых базовых тестов REST Assured на вашем локальном компьютере.
Прежде чем углубиться в гайки и болты REST Assured, что такое автоматическое тестирование API?
Пирамида тестов визуально отображает типы тестов и дает некоторые общие рекомендации о том, сколько из них нужно создать. Нам нужно много модульных тестов и небольшое количество сквозных тестов пользовательского интерфейса.
В середине пирамиды находится тестирование API. Тесты API проверяют приложение на уровне API и не включают пользовательский интерфейс (UI). Из-за этого тесты API обычно выполняются быстрее и менее хрупки, чем тесты пользовательского интерфейса.
В прошлом я использовал такие инструменты, как Почтальон и Каратэ для автоматического тестирования API. Недавно я начал изучать REST Assured, предоставив мне еще один инструмент тестирования API.
Корнишон обычно используется для описания поведения приложения с точки зрения конечного пользователя и может использоваться с такими инструментами, как Cucumber, для создания автоматизированных тестов. Корнишон использует знакомый синтаксис “Дано/Когда/тогда”.
Будьте уверены, использует API свободного стиля, который использует те же ключевые слова, чтобы обеспечить общую точку отсчета при структурировании тестов. Это сделает ваши тесты более удобочитаемыми и понятными.
Итак, как выглядит тест на уверенность в себе? Давайте начнем с основ.
@Test
public void checkEmployeeStatus() {
// @formatter:off
given().
when().
get("http://dummy.restapiexample.com/api/v1/employees").
then().
assertThat().
statusCode(200);
// @formatter:on
}
Этот пример, вероятно, достаточно понятен сам по себе. Мы просто делаем запрос на получение и проверяем, что код статуса равен 200.
Теперь давайте посмотрим, что вам нужно сделать, чтобы запустить этот простой пример на вашем компьютере.
В конечном счете мы просто создаем классы Java, которые будут использовать библиотеку REST Assured. Вы можете запускать тесты на macOS, Linux или Windows. Вам также потребуется установить Java JDK .
Для IDE вы можете использовать все, что вам удобно. Я использую Community Edition IntelliJ IDEA , но, конечно, эти концепции будут применяться к таким IDE, как Eclipse, или даже к простому текстовому редактору. В этом пошаговом руководстве я буду ссылаться на IntelliJ IDEA.
Откройте IDEA и создайте новый проект Maven. Чтобы запустить наш простой пример, нам нужно будет сделать пару вещей.
- Обновите свой pom-файл, чтобы включить в него необходимые и проверяемые зависимости:
io.rest-assured rest-assured 4.2.0 test org.testng testng 7.3.0 test
- Создайте класс Java в
src/test/java:
import org.testng.annotations.Test;
import static io.restassured.RestAssured.given;
public class HelloWorld {
@Test
public void checkEmployeeStatus() {
// @formatter:off
given().
when().
get("http://dummy.restapiexample.com/api/v1/employees").
then().
assertThat().
statusCode(200);
// @formatter:on
}
}
Щелкните правой кнопкой мыши метод тестирования и запустите тест:
Если вы получите сообщение об ошибке тестирования “Тестирование по умолчанию отключает загрузку DTD с незащищенного URL”, просто следуйте инструкциям в сообщении и используйте аргумент [-[-Testng.dtd.http=true] в вашей конфигурации запуска.
Надеюсь, вы увидите успешный тест:
Действительно ли этот тест делает то, что мы думаем? Давайте выясним это, заставив его потерпеть неудачу. Измените конечную точку на что-то недопустимое, например http://dummy.restapiexample.com/api/v1/employees-invalid
Запустите тест еще раз. Он должен завершиться ошибкой с сообщением Ожидаемый код состояния <200> , но был <404> . Это хорошо, потому что это показывает, что наш тест работает так, как мы ожидаем, а также показывает, что мы получаем 404 с недопустимой конечной точкой. Продолжайте и вернитесь к действительному URL-адресу и снова убедитесь, что он прошел.
Теперь давайте создадим еще один тест с недопустимой конечной точкой, чтобы убедиться, что мы получаем ожидаемый 404:
@Test
public void checkInvalidUrlReturns404() {
// @formatter:off
given().
when().
get("http://dummy.restapiexample.com/api/v1/employees-invalid").
then().
assertThat().
statusCode(404);
// @formatter:on
}
Запустите этот тест и убедитесь, что он тоже зеленый.
Просмотр данных, возвращенных с конечной точки
Итак, теперь у нас есть пара базовых тестов. Давайте вернемся к нашему первому тесту с допустимой конечной точкой. Какие данные возвращаются с этой конечной точки?
Наш текущий тест не проверяет какой-либо контент, и нет журналов для отображения возвращенных данных. Давайте изменим это, добавив log().body() в тест:
@Test
public void checkEmployeeStatus() {
// @formatter:off
given().
when().
get("http://dummy.restapiexample.com/api/v1/employees").
then().
assertThat().
statusCode(200).
log().body();
// @formatter:on
}
Запустите тест. Вы должны увидеть ответ JSON в журнале вашей консоли:
Это круто, но в реальном мире вы можете захотеть войти только при сбоях. Это можно сделать с помощью log().если проверка завершится неудачей() . Продолжайте и обновите тест, чтобы регистрировать его только в случае сбоя теста. Изменение если проверка не удалась необходимо применить до проверки кода состояния, например:
@Test
public void checkEmployeeStatus() {
// @formatter:off
given().
when().
get("http://dummy.restapiexample.com/api/v1/employees").
then().
assertThat().
log().ifValidationFails().
statusCode(200);
// @formatter:on
}
Конечно, вы должны убедиться, что он работает должным образом, допустив сбой и подтвердив, что вы получили журнал.
Возможно, вы заметили, что заверенные заявления завернуты в @форматировщик:выключен и @форматировщик:на тегах. Я делаю это, потому что мне нравится делать отступы под строками корнишона (учитывая/когда/тогда/и), но ИДЕЯ переформатировать код функция не соответствует этому стандарту. Я выключаю форматировщик, потому что IDEA переформатирование кода уничтожит мое форматирование отступов, если я этого не сделаю.
Чтобы это сработало, мне также нужно было “включить маркеры форматирования в комментариях” в настройках стиля кода IDEA.
Так что, надеюсь, это даст вам почувствовать силу уверенности в себе. В моем следующем посте я собираюсь осветить некоторые более продвинутые темы, такие как проверка полезной нагрузки, проверка схемы JSON, а также публикации и удаления.
Вы можете найти полный код для этой серии сообщений в блоге в мой проект на Github .
Счастливого тестирования!
Оригинал: “https://dev.to/leading-edje/testing-your-api-with-java-and-rest-assured-a15”