Использование программного компонента#

Генерация наборов тестовых данных через Public API#

Данная функциональность доступна любым зарегистрированным в TDMS пользователям, у которых сгенерирован Public API токен при помощи сценария создания пользовательского Public API token.

Создание пользовательского Public API token#

Обратите внимание
Данный сценарий имеет альтернативный сценарий в веб-интерфейсе: Генерация пользовательского токена для создания наборов через Public API.

  1. Выполните следующий запрос:

    Примечание
    Выполнение данной инструкции по генерации наборов тестовых данных через Public API продемонстрировано с использованием командной строки cURL. Для удобства можно также выполнить данный сценарий через REST-клиент.

    curl -X POST ${PROTOCOL}://${HOST}/api/gateway/public-api-service/tokens
    -H "Authorization: ${BEARER_TOKEN}"
    

    В случае успеха от сервера будет получен ответ 200 OK, в Response Body будут данные по созданной сущности Public API Token.

  2. В полученном ответе скопируйте значение поля ID в переменную ${PUBLIC_API_TOKEN}, которая используется в дальнейших запросах.

Для генерации набора необходимо предварительно создать сущности, на основе которых будет выполняться цепочка.

Обратите внимание
Во всех сценариях curl запросов замените значения ${HOST} и ${BEARER_TOKEN} актуальными значениями. Для получения ${BEARER_TOKEN} - смотрите сценарий получение Bearer Token. Замените значение ${PROTOCOL} на необходимый протокол взаимодействия: HTTP или HTTPS.

Генерация набора через публичное API#

Функциональность по генерации тестовых данных через Public API доступна на основании созданного ранее шаблона и при наличии выгруженного контракта через интерфейс TDMS при помощи сценария экспорта шаблона для генерации тестовых данных через Public API.

Данный сценарий описывает возможность создания запроса на генерацию тестовых данных. Запуск основан на идентификаторе шаблона.

Пользователю доступно уточнение количества необходимых генераций и значений параметров, которые необходимы для генерации. При наличии в разделе Библиотека данных готовых тестовых данных, удовлетворяющие запросу на генерацию, заявки автоматически могут быть забронированы системой в рамках текущего запроса, а оставшаяся часть будет отправлена на генерацию.

Генерация набора и возможность получения готовых тестовых данных ускоряет выполнение запроса по генерации тестовых данных через Public API.

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

При необходимости генерации тестовых данных через Public API по шаблону с изменениями - воспользуйтесь сценарием экспорта шаблона и последующим сценарием его импорта. Параметры, которые были предустановлены в шаблоне владельцем шаблона будут перезаписаны, если пользователь в запросе на генерацию тестовых данных через Public API указал значения соответствующих параметров.

Пример запроса на создание и запуск генерации заявок через Public API:

Метод: POST
PATH: /api/gateway/public-api-service/public/template
Headers:

Название

Значение

Описание

Content-type

application/json

Тип передаваемого контента

X-SYNTETA-API-TOKEN

${PUBLIC_API_TOKEN}

Токен для работы с public-api

Body:

{
   "templateId": number,
   "generations": [
      {
         "runCount": number,
         "steps": [
            {
               "seq": number,
               "actionId": number,
               "generatorId": number,
               "params": [
                  {
                     "code": string,
                     "value":string
                  }
               ]
            }
         ]
      }
   ]
}

Описание параметров в JSON:

Название

Тип

Описание

templateId

Long

Идентификатор шаблона

generations[]

List<GenerationDto>

Список генераций по шаблону

generations[].runCount

Integer

Кол-во генерацию по заданным характеристикам в шаблоне

generations[].steps[]

List<StepDto>

Список шагов, состоящий из действий

generations[].steps[].seq

Integer

Порядковый номер задачи

generations[].steps[].actionId

Long

Идентификатор действия

generations[].steps[].generatorId

Long

Идентификатор генератора

generations[].steps[].params[]

List<PropertyDto>

Список параметров

generations[].steps[].params[].code

String

Код параметра

generations[].steps[].params[].value

String

Значение параметра

Пример ответа:

Статус код: 201 Created

Текущий статус код гарантирует, что заявка на генерацию успешно создана и отправлена в очередь.

{
   templateId: number;
   status: IN_PROGRESS;
   uuid: string
}

Название

Тип

Описание

templateId

Long

Идентификатор шаблона

status

Enum

Статус запроса на генерацию

uuid

String

Уникальный идентификатор запроса

В случае, если запрос завершился с ошибкой, контракт следующий:

{
   "timestamp": String,
   "status": number,
   "error": String,
   "exception": String,
   "message": String,
   "path": String,
   "errors": [
      {
      "field": String,
      "value": String,
      "message": String
      }
   ]
}

Пример ошибки:

{
   "timestamp": "2024-06-26 16:43:09.94",
   "status": 400,
   "error": "400 BAD_REQUEST",
   "exception": "TemplateGenerationValidateException",
   "message": "Запрос не прошел валидацию",
   "path": "/templates-service/generation",
   "errors": [
      {
      "field": "code",
      "value": "test_001",
      "message": "Значение 'тестовое значение' параметра 'тестовый параметр', не соответствует типу с dataType = ARRAY"
      }
   ]
}

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

Получение содержимого заявки созданной через публичное API#

Выполните следующий запрос для получения содержимого заявки:

Метод: GET
PATH: /api/gateway/public-api-service/public/template/{uuid}
Headers:

Название

Значение

Описание

Content-type

application/json

Тип передаваемого контента

X-SYNTETA-API-TOKEN

${PUBLIC_API_TOKEN}

Токен для работы с public-api

Пример ответа:

Статус код: 200 OK

Текущий статус код гарантирует, что формирование списка uuid по генерациям заявок через Public API по uuid произошло успешно.

{
    templateId: number;
    status: Enum[IN PROGRESS, DONE];
    uuid: string,
    orders: [{
    id: number;
    name: string;
    created: string;
    startedBy: string;
    scheduledAt: string;
    status: Enum[IN PROGRESS, DONE];
    currentTask: number;
    tasks: [{
       id: number;
       error: string;
       name: string;
       responseData: Map<String, Object>;
       status: Enum[READY, RUNNING, SUCCESS, FAIL, QUEUED, NEED_INFO, SCHEDULED, CANCELED, ON_HOLD, BLOCKED];
       seq: number;
       startedAt: string;
       endedAt: string;
       generator: number;
       buildUrl: string;
       scheduledAt;
       restartCount: number;
       actionId: number;
    }];
    restartCount: number;
    standId: number;
    templateId: number;
    }]
}

Просмотр всех заявок на генерацию по шаблонам через публичное API для текущего пользователя#

Выполните следующий запрос для получения содержимого заявки:

Метод: GET
PATH: /api/gateway/public-api-service/public/template
Headers:

Название

Значение

Описание

Content-type

application/json

Тип передаваемого контента

X-SYNTETA-API-TOKEN

${PUBLIC_API_TOKEN}

Токен для работы с public-api

Пример ответа:

Статус код: 200 OK

Текущий статус код гарантирует, что список uuid по генерациям заявок через Public API успешно сформирован.

{
    "uuids": []
}

Где:

  • uuids - массив строк.

Вспомогательные сценарии#

Получение Bearer Token#

  1. Перейдите в основной интерфейс TDMS: ${PROTOCOL}://${HOST}.

  2. Откройте DevTools, вкладку Networks.

  3. Авторизуйтесь в системе.

  4. В DevTools выберите запрос userinfo.

  5. Скопируйте значение Bearer Token в буфер обмена.