163 lines
No EOL
5.8 KiB
Markdown
163 lines
No EOL
5.8 KiB
Markdown
---
|
||
**Система**: Единая библиотека, Центр ИИ НИУ ВШЭ
|
||
|
||
**Модуль**: Тесты
|
||
|
||
**Авторы**: Полежаев В.А., Хританков А.С.
|
||
|
||
**Дата создания**: 2024 г.
|
||
|
||
---
|
||
|
||
|
||
# Ручное тестирование пайплайнов
|
||
|
||
## Используемые данные
|
||
|
||
Ресурсы тестового приложения находятся в папке `tests/data/resources/pu-user1/apps/app2`.
|
||
|
||
Используется тестовый пользователь `pu-user1`
|
||
(ресурсы пользователя см. в папке `tests/data/resources/pu-user1`).
|
||
|
||
Запросы и данные запросов находятся в папке `tests/integration/requests/test_app2`.
|
||
|
||
1. Приложение pu-user1-pa-app2 пользователя pu-user1 c размещенным APIComponent для Pipelines API, Files API.
|
||
См. api-pipelines.yaml, api-files.yaml.
|
||
|
||
2. Пайплайны. См. 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://<host>/pu-user1-pa-app2/pipelines/test-ep6/trials \
|
||
-d @./data/data.json -H "Content-Type: application/json" -u "developer:<pwd>"
|
||
|
||
### Добавить условие статуса
|
||
|
||
curl -X POST https://<host>/pu-user1-pa--app2/pipelines/test-ep6/trials/<tracking-id>/status/conditions \
|
||
-d @./data/status-condition.json -H "Content-Type: application/json" -u "developer:<pwd>"
|
||
|
||
### Получить триалы
|
||
|
||
Один:
|
||
|
||
url -X GET https://<host>/pu-user1-pa-app2/trials/6bc5dfee-aeae-4269-8982-abf0fcfa3c65 \
|
||
-u "developer:<pwd>"
|
||
|
||
Все триалы пайплайна:
|
||
|
||
curl -X GET https://<host>/pu-user1-pa-app2/pipelines/test-ep6/trials \
|
||
-u "developer:<pwd>"
|
||
|
||
Все триалы пользователя:
|
||
|
||
curl -X GET https://<host>/pu-user1-pa-app2/trials \
|
||
-u "developer:<pwd>"
|
||
|
||
### Получить пайплайны
|
||
|
||
curl -X GET https://<host>/pu-user1-pa-app2/pipelines/test-ep6 \
|
||
-u "developer:<pwd>"
|
||
|
||
curl -X GET https://<host>/pu-user1-pa-app2/pipelines/test-ep6/version \
|
||
-u "developer:<pwd>"
|
||
|
||
curl -X GET https://<host>/pu-user1-pa-app2/pipelines \
|
||
-u "developer:<pwd>"
|
||
|
||
### Загрузка файла some-data.csv (при необходимости)
|
||
|
||
curl -X PUT https://<host>/pu-user1-pa-app2/files/test-app2-user-data/test-group21/file22 \
|
||
-u "developer:<pwd>"
|
||
|
||
curl -X PUT -d @./data/some_data.csv "<presigned put url>"
|
||
|
||
### OIDC аутентификация
|
||
|
||
Получить токен для OIDC аутентификации:
|
||
|
||
curl -L -X POST https://<host>/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=<password>'
|
||
|
||
dev-multi-auth - имя клиента Keycloak, test-multi-auth - имя пользователя.
|
||
|
||
Использовать токен в запросах:
|
||
|
||
(например, для получения списка пайплайнов)
|
||
|
||
curl -X GET https://<host>/pu-user1-pa-app2/pipelines \
|
||
-L \
|
||
-H "Authorization: Bearer <token>" |