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

Тестирование это важный этап при разработке. Если разработка представляет собой программу, функциональный модуль или класс, то можно обойтись unit-тестами. Если же разработка представляет собой реализацию интеграционных процесса, то необходимо также выполнять тестирование извне. Имеются несколько инструментов такого тестирования — Postman, SoapUI итд, однако они имеют ограничения. Недавно нашел интересный инструмент — Bruno

Bruno это быстрый opensource API клиент, который можно установить на разные ОС. Представляет собой Bruno Desktop App и Bruno Cli.

Попробуем сделать небольшой API-тест к REST-сервису который доступен по адресу http://192.168.1.4:8000/sap/zrest, который предоставляет возможность получать данные бизнес-партнеров (БП) в SAP.

В Bruno создаем коллекцию, в которой будет 2 шага:

  1. Авторизация (FetchToken)
  2. Получение данных бизнес-партнера(GetBP)
Коллекция тестов

Для созданной коллекции создадим среду с необходимыми переменными

Переменные в настройках среды

В переменных user и pass пока будем сохранять переменных — в дальнейшем надо будет перенести в соответствии с документом.

BaseURL хранит настройку ссылки на REST-сервис

user/pass — данные авторизации на сервисе

client — мандант с тестовыми данными

XCSRFToken — переменная для хранения токена авторизации

cookie — переменная для хранения куки — в частности нужен SAP_SESSIONID

Запрос FetchToken

FetchToken выполняет авторизацию пользователя в системе SAP, получает и сохраняет токен и SAP_SESSIONID в переменных среды.

Headers запроса получения токена

Данные запрос передает заголовок X-Csrf-Token со значением fetch для генерации токена (генерация токена происходит в метода HANDLE_CSRF_TOKEN handler-класса)

Для авторизации необходимо указать тип авторизации и необходимые данные

Настройка авторизации запроса

После получения токена его и SAP_SESSIONID необходимо сохранить в переменных среды. Для этого можно добавить скрипт, который выполится после получения ответа. Пока явно пропишем сохранение cookie[2]. В дальнейшем лучше реализовать нахождение SAP_SESSIONID автоматически.

Скрипт сохранения токена и SAP_SESSIONID в переменных среды

Таким образом на первом шаге мы получаем и сохраняем токен и SAP_SESSIONID в переменных среда. Их мы будем использовать в последующих шагах.

Запускаем созданный запрос. На закладке Headers должен показать полученный токен

Получение токена

Запрос GetBP

Данный запрос получает данные о БП с помощью GET bupa

Запрос данных бизнес-партнера с передачей токена и SAP_SESSIONID

При этом в разделе Headers передаем X-Csrf-Token(токен) и cookie.

Запускаем запрос. На закладке Timeline должен показать отправку полученного на первом шаге токена

Авторизация с помощью токена

На закладке Response мы увидем данные БП

Результат запроса данных бизнес-партнеров

Таким образом мы сделали простой API-тест, который запрашивает данные БП из системы SAP.

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

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

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