API-Тест. Часть 2

В первой части мы сделали простой API-тест REST-сервиса состоящий из двух шагов — авторизация и получение данных. Во второй части я опишу изменение данных бизнес-партнера, проверку изменения и покажу возможность автоматического запуска коллекции тестов на регулярной основе.

1. Изменение данных и контроль изменений.

Добавим новый запрос в нашу коллекцию тестов

На закладке Headers добавляем переменные, необходимые для авторизации: X-Csrf-Token и cookie

На закладке Body укажем новые данные изменяемого бизнес-партнера в формате JSON.

Запускаем данный тест и проверяем выполненные изменения

Однако таким образом мы выполним только статическое изменение. Запустив этот тест повторно мы не сможем проверить что данные изменились. Необходимо динамически генерировать уникальные данные, передавать его в тестируемый сервис и проверять в ответе сервера.

Для этих действий в Bruno имеется возможность выполнения скриптов (Pre Request и Post Response) и тестов. И то и другое представляют собой куски кода на JavaScript. Cкрипт Pre Request отлично подходит для генерации значения и его сохранения в переменных Bruno. Прежде всего создадим переменную NAME2 в среде. В эту переменную мы будем сохранять сгенерированное значение.

На закладке Scripts создадим скрипт Pre Request.

В первой строке мы подключаем библиотеку nanoid (список библиотек доступен в документации Bruno). Затем генерируем уникальную строку и сохраняем её во локальной переменной name2.

В третьей строке получаем тело запроса в переменную data

Далее сохраняем значение из локальной переменной name2 в переменную среды NAME2.

Осталось только изменить тело запроса для передачи сгенерированной строки в REST-сервис.

Запустим полученный тест и убедимся, что каждый раз в сервис отправляется уникальное значение NAME2,

Теперь необходимо проверить ответ сервера. Для этого воспользуемся тестами на закладке Tests

Здесь имеются 3 теста:

  1. Проверяем ответ сервера
  2. Проверяем номер возвращаемого БП
  3. Проверяем соответствие значения NAME2 ответа со значением переменной среды.

Кстати, для отладки имеется возможность выводить необходимую информацию с помощью объекта console. Консоль доступа в инструментах разработчика

Запустив тест необходимо проверить результат выполнения каждого на закладке Tests

Теперь можно изменить порядок тестов, что бы изменение БП происходило до получения данных и в метода GetBP добавить проверку изменений

Таким образом можно вручную вызывать всю коллекцию тестов и контролировать правильность работы сервиса.

2. Автоматический запуск коллекций тестов

Готовый REST-сервис может быть достаточно вызывать вручную, однако при активной разработке сервиса необходимо периодически проверять его работоспособность. Таким образом можно оперативно замечать ошибки и устранять их. Для этого в составе Bruno имеется cli-утилита bru. Данная утилита имеется для различных операционных систем и я установил её на сервер. Также скопируем на него все файлы коллекции тестов включая каталог environments. Для запуска в этом каталоге выполним команду:

Таким образом сформируется файл bupa_test.json, в котором будут данные о результате теста

Таким образом можно запланировать вызов данной команды и отправлять данный файл для контроля тестирования.

К сожалению пока нет программы генерации на основании этого JSON-файла в красивые отчеты.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *