Skip to content

Тестирование API

Инструмент "Тестирование API" (Test API) предназначен для тестирования REST API.

Входной файл

Входной файл (Input File) - много-колоночный список в формате CSV (Comma Separated Values). Для каждой строки из входного файла будет выполнен HTTP-запрос к REST API (HTTP Request).

HTTP-запрос

HTTP-методы

Test API поддерживает следующие HTTP-методы (HTTP Verbs):

HTTP-метод Значение
GET Запрашивает представление ресурса. Запросы с использованием этого метода могут только извлекать данные.
POST Используется для отправки сущностей к определённому ресурсу. Часто вызывает изменение состояния или какие-то побочные эффекты на сервере.
PUT Заменяет все текущие представления ресурса данными запроса.
PATCH Используется для частичного изменения ресурса.
DELETE Удаляет указанный ресурс.

URL запрашиваемого ресурса

URL может быть в схеме HTTP или HTTPS. Например:

https://geo.ipify.org/api/v2/country

Тело запроса

Test API поддерживает следующие способы кодирования отправляемых данных (Body):

Способ кодирования Описание
none Пусто (не отправлять).
form-data multipart/form-data: каждое значение посылается как блок данных ("body part"), с заданными пользовательским клиентом разделителем ("boundary"), разделяющим каждую часть. Эти ключи даются в заголовки Content-Disposition каждой части. См. RFC2045.
x-form-urlencoded application/x-www-form-urlencoded: значения кодируются в кортежах с ключом, разделённых символом '&', с '=' между ключом и значением. Например: apiKey=12345&apiAddress=8.8.8.8.
raw "Сырые" (RAW) данные, без кодирования. Текст и тип RAW-данных можно ввести во вкладке "Raw". См. ниже типы RAW-данных.
Тип RAW Описание
Text Простой текст (Plain Text)
JSON JSON - текстовый формат обмена данными, основанный на JavaScript.
HTML HTML - язык разметки документов для просмотра веб-страниц в браузере.
XML XML - расширяемый язык разметки.

Параметры запроса

Параметры запроса задаются во вкладке "Параметры" (Params). В значение параметра (Value) можно подставлять значения колонок из входного файла. Для этого используются "теги" (Tags): {%COLUMN1%} - первая колонка, {%COLUMN2%} - вторая колонка, и т.д. Пример:

Параметр Значение
apiKey at_KHpoRtnrtVffSE9oekIYvSvONXLAb
apiAddress {%COLUMN1%}

Во вкладке "Заголовки" (Headers) можно определять заголовки HTTP-запроса, например:

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9

Ограничения скорости

Для того, чтобы снизить нагрузку на сервер, часто API вводят ограничения на количество обращений клиентов в единицу времени. В Test API имеется две настройки, которые позволяют не превысить эти ограничения:

  • Количество запросов в секунду (Requests per second). 0 - не ограничено.
  • Количество запросов в минуту (Requests per minute). 0 - не ограничено.

Выходные данные

В выходной файл (Output) будут записаны результаты выполнения запросов, если включена одна из настроек:

  • Выводить HTTP-лог (Out HTTP Log). Пример:
OK,2022-05-09T19:42:43.696+05:00,200,313
OK,2022-05-09T19:42:43.737+05:00,200,290
OK,2022-05-09T19:42:43.758+05:00,200,298
OK,2022-05-09T19:42:43.855+05:00,200,331
  • Выводить исходные колонки (Out Source Columns). Номера колонок перечисляются через запятую; можно использовать диапазон: 1-4 (с первой по четвертую). Пример вывода первой колонки (при включенной настройке "Выводить HTTP-лог"):
20.81.111.85,OK,2022-05-09T19:44:17.505+05:00,200,313
124.108.115.100,OK,2022-05-09T19:44:17.509+05:00,200,298
74.6.231.20,OK,2022-05-09T19:44:17.550+05:00,200,290
64.233.165.139,OK,2022-05-09T19:44:17.576+05:00,200,331
  • Заданы правила извлечения результатов из ответов. Для каждого правила нужно ввести путь (Path) и выбрать источник (From): JSON или XML.

Правило извлечения результатов из XML

Путь для извлечения результатов из XML - XPath. Пример:

//status/node()
//lead_id/node()

Правило извлечения результатов из JSON

Путь для извлечения результатов из JSON - JSON Path, который можно условно назвать "XPath для JSON". Opt-In List Manager использует парсер TJSONParser, который реализует подмножество из спецификации JSON Path. Поддерживаемые операторы доступа к дочерним объектам и свойствам:

  • Используйте . для доступа к свойствам объекта, которые не содержат точку в имени. Напрмер, root.child - свойство child объекта root.
  • Используйте [] для доступа к свойствам объекта, содержащим в имени символы, которые нужно заключить в кавычки, например: root['child.name'], root["child.name"].

Пример:

location.country