5.8 KiB
Система: Единая библиотека, Центр ИИ НИУ ВШЭ
Модуль: Тесты
Авторы: Полежаев В.А., Хританков А.С.
Дата создания: 2024 г.
Ручное тестирование пайплайнов
Используемые данные
Ресурсы тестового приложения находятся в папке tests/data/resources/pu-user1/apps/app2.
Используется тестовый пользователь pu-user1
(ресурсы пользователя см. в папке tests/data/resources/pu-user1).
Запросы и данные запросов находятся в папке tests/integration/requests/test_app2.
-
Приложение pu-user1-pa-app2 пользователя pu-user1 c размещенным APIComponent для Pipelines API, Files API. См. api-pipelines.yaml, api-files.yaml.
-
Пайплайны. См. exp-pipeline6.yaml и остальные ресурсы пайплайнов в файлах с маской exp-pipeline*.yaml.
Пайплайны
test-ep6 (exp-pipeline6.yaml)
Базовый тестовый пайплайн с одним этапом.
Для этого пайплайна есть два манифеста интерфесов APIComponent с OIDC аутентификацией:
- api-cmp6-oidc.yaml (OIDC)
- api-cmp6-oidc-ba.yaml (OIDC, Basic)
test-ep7 (exp-pipeline7.yaml)
Особенности:
- Повторяет логику test-ep6, но для переменных пути и ящики используются по умолчанию;
test-ep8, test-ep9 (exp-pipeline8.yaml, exp-pipeline9.yaml)
Особенности:
- Пайплайны связаны в цепочку, test-ep8 вызывает test-ep9.
test-ep10 (exp-pipeline10.yaml)
Особенности:
- Включает спецификацию типов входных и выходных переменных;
Данные запросов
data.json, data1.json, data2.json
Отражают все основные виды входов:
- только файловый вход (data.json)
- файловый и объектный вход (data1.json)
- только объектный вход (data2.json)
Виды выходов:
- заданная файловая группа (все файлы)
- файловая группа не задана, будет создана временная файловая группа (все файлы)
Для использования data.json необходимо предварительно загрузить содержимое файла test-group21/file22.
Данные data.json, data1.json, data2.json применимы для тестирования пайплайнов:
- test-ep6
- test-ep7
- test-ep12
Данные data2.json применимы для тестирования пайплайнов:
- test-ep8 и test-ep9
data-typed.json, data-typed-bad.json, data-typed-bad2.json
Включают корректные и некорректные относительно спецификации типов входов и выходов типы данных и типы содержимого.
Данные применимы для тестирования пайплайнов:
- test-ep10
data11.json, data112.json
Аналогичны data.json и data2.json соответственно.
Данные применимы для тестирования пайплайнов:
- test-ep11
Тестовые данные
Файл some_data.csv можно использовать в качестве тестового файлового входа (файл может быть загружен через Files API).
Запросы
Старт триала
curl -X POST https:///pu-user1-pa-app2/pipelines/test-ep6/trials
-d @./data/data.json -H "Content-Type: application/json" -u "developer:"
Добавить условие статуса
curl -X POST https:///pu-user1-pa--app2/pipelines/test-ep6/trials//status/conditions
-d @./data/status-condition.json -H "Content-Type: application/json" -u "developer:"
Получить триалы
Один:
url -X GET https:///pu-user1-pa-app2/trials/6bc5dfee-aeae-4269-8982-abf0fcfa3c65
-u "developer:"
Все триалы пайплайна:
curl -X GET https:///pu-user1-pa-app2/pipelines/test-ep6/trials
-u "developer:"
Все триалы пользователя:
curl -X GET https:///pu-user1-pa-app2/trials
-u "developer:"
Получить пайплайны
curl -X GET https:///pu-user1-pa-app2/pipelines/test-ep6
-u "developer:"
curl -X GET https:///pu-user1-pa-app2/pipelines/test-ep6/version
-u "developer:"
curl -X GET https:///pu-user1-pa-app2/pipelines
-u "developer:"
Загрузка файла some-data.csv (при необходимости)
curl -X PUT https:///pu-user1-pa-app2/files/test-app2-user-data/test-group21/file22
-u "developer:"
curl -X PUT -d @./data/some_data.csv ""
OIDC аутентификация
Получить токен для OIDC аутентификации:
curl -L -X POST https:///keycloak/realms/master/protocol/openid-connect/token
--data-urlencode 'client_id=dev-multi-auth'
--data-urlencode 'grant_type=password'
--data-urlencode 'username=test-multi-auth'
--data-urlencode 'password='
dev-multi-auth - имя клиента Keycloak, test-multi-auth - имя пользователя.
Использовать токен в запросах:
(например, для получения списка пайплайнов)
curl -X GET https:///pu-user1-pa-app2/pipelines
-L
-H "Authorization: Bearer "