Почему Rest Assured не так уж и хорош
Давно ничего не писал. Навалилось много дел, да и лето - не самая активная пора для работы. В этот раз решил поделиться своими мыслями по поводу Rest Assured и того, почему он не подходит для написания тестов в том виде, в котором его подают в официальных туториалах и доках.
Прошло уже почти три года с момента написания одной из самых популярных заметок в этом блоге с подборкой рест клиентов.
Я использую Rest assured очень активно и все, что я напишу ниже, основано на моем практическом опыте. У вас может быть другое мнение и это отлично, так как блоги и выступления на конференциях - это в первую очередь обмен опытом.
Официальная документация учит нас, что тесты на Rest Assured писать легко и просто с использованием BDD стиля:
public class SwapiTest {
@Test
public void shouldGetLuke() {
get("http://swapi.co/api/people/1/")
.then().statusCode(200)
.and()
.assertThat()
.body("name", equalTo("Luke Skywalker"));
}
}
Все это хорошо до момента, пока ваших тестов становится больше, чем пару штук. С ростом количества тестов начинаются проблемы. Большинство испытывает их из-за слабого знания языка программивания и умения внятно разбивать проект на компоненты. Правильная архитектура и разделение проекта на слои - это основное, что нужно продумывать в вашем проекте по автоматизации. Библиотека, на основе которой вы строите свое решение, - второстепенна.
Если вы не правильно построите архитектуру и будете писать тесты в таком стиле, как предлагают официальные туториалы, то, несомненно, наткнетесь на проблемы с логированиеи и дублированием кода.
В дополнение ко всему, Rest assured медленный. Так как это обертка, состоящая из Java/Groovy кода, то и работает он значительно медленее, чем его конкуренты. Для тестов это может быть и не сильно критично, но вот проверку json схемы, которая встроена в Rest Assured, я рекомендую не делать: работать оно будет ооочень медленно.
Если вы решаетесь на использование рест ашурда в своем проекте, хорошо подумайте, как вы хотите видеть ваши тесты, отчеты и сколько времени хотите тратить на поддержку этих тестов.
После того, как Allure добавил поддержку Rest Assured c отчетами по REST API тестам, ситуация значительно улучшилась.
Еще одной проблемой является отсутсвие вменяемых примеров кода и хороших практик работы с Rest Assured. Складывается впечатление, что все фигачат как попало и это всех устраивает.
Дабы немного пролить свет на решение проблемы, я решил сделать тренинг по тому, как же все-таки можно правильно организовать работу и построение проекта на основе Rest Assured. Программа основана на практическом опыте. После тренинга слушатели могут сразу же применять полученный опыт на своих проектах, не тратя лишнее время на копание в документации Rest Assured и хождение по граблям.
Не упустите свой шанс сделать автоматизацию тестирования REST API на своем проекте действительно правильной.