--- **Система**: Единая библиотека, Центр ИИ НИУ ВШЭ **Модуль**: Тесты **Авторы**: Полежаев В.А., Хританков А.С. **Дата создания**: 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:///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 "