README создано AI (GitHub Copilot).
Скрипт tests/run.sh
выполняет базовый прогон проверок работоспособности окружения n8n через REST API:
- Health check
- Создание тестового пользователя
- Создание Tag
- Создание workflow (Webhook)
- Активация workflow
- Проверка вызова заранее созданного webhook (
/webhook/update-test
) - Подсчёт количества workflow
- Получение списка executions
- Очистка созданных ресурсов (workflow, пользователь, tag)
Скрипт безопасно удаляет ранее созданные тестовые сущности с тем же Tag / email перед запуском.
- Bash (Linux/macOS)
curl
jq
- Доступ к инстансу n8n и валидный API Key
- Файл с API токеном в
.vault/kv/
(см. ниже)
- В каталоге репозитория создайте файл c API ключом:
.vault/kv/<SECRET_NAME>
- Экспортируйте переменные:
export N8N_API_KEY_SECRET=<SECRET_NAME> # имя файла в .vault/kv/ с токеном
export N8N_API_URL=https://your-n8n.domain # при отличии от значения по умолчанию
Скрипт сам прочитает токен: N8N_API_TOKEN=$(cat .vault/kv/"${N8N_API_KEY_SECRET}")
.
chmod +x tests/run.sh # один раз
./tests/run.sh
Код выхода 0 = все тесты прошли. Любое другое значение = есть ошибки.
Изменяемые переменные внутри run.sh
(при необходимости):
TEST_USER_EMAIL
TEST_WORKFLOW_NAME
TEST_WORKFLOW_TAG_NAME
Пароль пользователя и токен генерируются автоматически.
N8N API Тестирование
[INFO] Проверка переменных окружения...
[SUCCESS] Переменные окружения настроены корректно
...
[SUCCESS] Workflow активирован успешно
[SUCCESS] Workflow выполнен успешно
==========================================
Результаты тестирования:
Всего тестов: 7
Успешных: 7
Неуспешных: 0
Перед стартом выполняется поиск и удаление:
- Пользователя с заданным email
- Всех workflow с указанным Tag
- Tag с тем же именем Это позволяет запускать тест многократно без «засорения» окружения.
stages: [test]
api-tests:
stage: test
image: alpine:3.20
before_script:
- apk add --no-cache bash curl jq coreutils
- export N8N_API_KEY_SECRET=$N8N_API_KEY_SECRET
script:
- bash tests/run.sh
(Переменные/секреты задайте в настройках CI.)
- Активация и выполнение webhook тестируется против заранее доступного эндпоинта
/webhook/update-test
. - При недоступности API ключа или URL выполнение прерывается сразу.
Изменяйте и дополняйте по необходимости. README создано AI (GitHub Copilot).