Тестирование 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