fix: тесты работают, параметры извлекаются из deploy/values.yaml

This commit is contained in:
Naeel
2026-04-13 09:29:48 +03:00
parent 8b6d1a3c21
commit dbfdcbe24d
4 changed files with 123 additions and 101 deletions
+4 -11
View File
@@ -1,12 +1,5 @@
#!/bin/bash
# quick.sh — Только быстрые тесты (31 проверка, ~1 минута)
set -e
SCRIPT_DIR="\$(cd \"\$(dirname \"\${BASH_SOURCE[0]}\")\" && pwd)"
REPO_ROOT="\$(dirname \"\$SCRIPT_DIR\")"
VALUES_FILE=\${REPO_ROOT}/deploy/values.yaml
INGRESS_HOST=\$(grep -A5 \"^ingress:\" \"\$VALUES_FILE\" | grep \"host:\" | awk -F" '{print \$2}')
ADMIN_TOKEN=\$(grep \"token:\" \"\$VALUES_FILE\" | head -1 | awk -F" '{print \$2}')
BASE_URL=\"https://\${INGRESS_HOST}\"
[ -f \"\$SCRIPT_DIR/.env.local\" ] && source \"\$SCRIPT_DIR/.env.local\"
cd \"\$REPO_ROOT\"
BASE_URL=\"\$BASE_URL\" ADMIN_TOKEN=\"\$ADMIN_TOKEN\" bash tests/quick_test.sh
# quick.sh — запуск быстрых тестов (7 основных операций SQS)
REPO_ROOT="$(dirname "$(cd "$(dirname "$0")" && pwd)")"
"$REPO_ROOT/tests-deploy/run.sh" 2>&1
+62 -51
View File
@@ -1,71 +1,82 @@
#!/bin/bash
# run.sh — Запуск тестов shared-SQS с параметрами из values.yaml
# run.sh — запуск тестов shared-sqs для verification деплоя
# 2026-04-13 — автоматическое извлечение параметров из deploy/values.yaml
set -e
RED='\\033[0;31m'
GREEN='\\033[0;32m'
YELLOW='\\033[1;33m'
NC='\\033[0m'
echo "shared-sqs Тесты"
echo
SCRIPT_DIR="\$(cd \"\$(dirname \"\${BASH_SOURCE[0]}\")\" && pwd)"
REPO_ROOT="\$(dirname \"\$SCRIPT_DIR\")"
VALUES_FILE="\${REPO_ROOT}/deploy/values.yaml"
# Переход в корневую папку репозитория (parent от tests-deploy/)
REPO_ROOT="$(dirname "$(cd "$(dirname "$0")" && pwd)")"
VALUES_FILE="$REPO_ROOT/deploy/values.yaml"
QUICK_TEST="$REPO_ROOT/quick_test.sh"
ENV_LOCAL="$REPO_ROOT/tests-deploy/.env.local"
echo -e "\${GREEN}╔════════════════════════════════════════════╗\${NC}"
echo -e "\${GREEN}║ shared-sqs Тесты (из values.yaml) ║\${NC}"
echo -e "\${GREEN}╚════════════════════════════════════════════╝\${NC}"
echo ""
# Функция для извлечения параметров из YAML
extract_param() {
local file="$1"
local key="$2"
grep "$key:" "$file" | head -1 | sed -n "s/.*$key: \"\([^\"]*\).*/\1/p"
}
if [ ! -f "\$VALUES_FILE" ]; then
echo -e "\${RED}❌ Файл не найден: \$VALUES_FILE\${NC}"
echo " Убедись что находишься в корне репозитория shared-SQS"
# Функция для извлечения nested параметров (ingress.host)
extract_nested() {
local file="$1"
local section="$2"
local key="$3"
grep -A5 "^$section:" "$file" | grep "$key:" | sed -n "s/.*$key: \"\([^\"]*\).*/\1/p"
}
# Проверка наличия файлов
if [ ! -f "$VALUES_FILE" ]; then
echo "❌ Ошибка: не найден $VALUES_FILE"
exit 1
fi
echo -e "\${YELLOW}📄 Читаю параметры из deploy/values.yaml...\${NC}"
INGRESS_HOST=\$(grep -A5 \"^ingress:\" \"\$VALUES_FILE\" | grep \"host:\" | awk -F" '{print \$2}')
ADMIN_TOKEN=\$(grep \"token:\" \"\$VALUES_FILE\" | head -1 | awk -F" '{print \$2}')
if [ -z \"\$INGRESS_HOST\" ] || [ -z \"\$ADMIN_TOKEN\" ]; then
echo -e \"\${RED}❌ Не удалось прочитать параметры\${NC}\"
if [ ! -f "$QUICK_TEST" ]; then
echo "❌ Ошибка: не найден $QUICK_TEST"
echo " Ожидался: $QUICK_TEST"
exit 1
fi
BASE_URL=\"https://\${INGRESS_HOST}\"
echo "Читаю параметры из deploy/values.yaml..."
if [ -f \"\$SCRIPT_DIR/.env.local\" ]; then
source \"\$SCRIPT_DIR/.env.local\"
# Извлечение параметров
INGRESS_HOST=$(extract_nested "$VALUES_FILE" "ingress" "host")
ADMIN_TOKEN=$(extract_param "$VALUES_FILE" "token")
# Demo credentials — для ознакомительного тестирования
AWS_ACCESS_KEY_ID="SSAK-demo-shared-sqs"
AWS_SECRET_ACCESS_KEY="demo-secret-key-shared-sqs-ngcloud-2026"
AWS_DEFAULT_REGION="us-east-1"
BASE_URL="https://$INGRESS_HOST"
# Override из .env.local (если существует)
if [ -f "$ENV_LOCAL" ]; then
echo " → Загружу override из .env.local"
# shellcheck disable=SC1090
source "$ENV_LOCAL"
fi
echo \"\"
echo -e \"\${GREEN}✅ Параметры загружены:\${NC}\"
echo \" BASE_URL: \$BASE_URL\"
echo \" ADMIN_TOKEN: \${ADMIN_TOKEN:0:20}...\"
echo \"\"
echo "✅ Параметры загружены:"
echo " BASE_URL: $BASE_URL"
echo " ADMIN_TOKEN: ${ADMIN_TOKEN:0:20}..."
echo
echo -e \"\${YELLOW}🔍 Проверяю доступность...\${NC}\"
if curl -sf --max-time 5 \"\${BASE_URL}/health\" > /dev/null 2>&1; then
echo -e \"\${GREEN}✅ Сервис доступен\${NC}\"
else
echo -e \"\${RED}❌ Сервис НЕ доступен: \$BASE_URL\${NC}\"
# Проверка доступности сервиса
echo "🔍 Проверяю доступность..."
if ! curl -sf "$BASE_URL/health" > /dev/null 2>&1; then
echo "❌ Сервис недоступен по $BASE_URL"
exit 1
fi
echo "✅ Сервис доступен"
echo
echo \"\"
echo -e \"\${GREEN}════════════════════════════════════════════\${NC}\"
echo -e \"\${GREEN}🚀 Запускаю quick_test.sh...\${NC}\"
echo -e \"\${GREEN}════════════════════════════════════════════\${NC}\"
echo \"\"
# Запуск тестов
echo "════════════════════════════════════════════"
echo "🚀 Запускаю quick_test.sh..."
echo "════════════════════════════════════════════"
cd \"\$REPO_ROOT\"
if BASE_URL=\"\$BASE_URL\" ADMIN_TOKEN=\"\$ADMIN_TOKEN\" bash tests/quick_test.sh; then
QUICK_RESULT=0
echo -e \"\${GREEN}✅ quick_test.sh PASSED\${NC}\"
else
QUICK_RESULT=1
echo -e \"\${RED}❌ quick_test.sh FAILED\${NC}\"
fi
echo \"\"
exit \$QUICK_RESULT
export BASE_URL ADMIN_TOKEN AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_DEFAULT_REGION
bash "$QUICK_TEST"
+41 -11
View File
@@ -1,12 +1,42 @@
#!/bin/bash
# stress.sh — Стресс-тесты (23 проверки, ~7 минут)
set -e
SCRIPT_DIR="\$(cd \"\$(dirname \"\${BASH_SOURCE[0]}\")\" && pwd)"
REPO_ROOT="\$(dirname \"\$SCRIPT_DIR\")"
VALUES_FILE=\${REPO_ROOT}/deploy/values.yaml
INGRESS_HOST=\$(grep -A5 \"^ingress:\" \"\$VALUES_FILE\" | grep \"host:\" | awk -F" '{print \$2}')
ADMIN_TOKEN=\$(grep \"token:\" \"\$VALUES_FILE\" | head -1 | awk -F" '{print \$2}')
BASE_URL=\"https://\${INGRESS_HOST}\"
[ -f \"\$SCRIPT_DIR/.env.local\" ] && source \"\$SCRIPT_DIR/.env.local\"
cd \"\$REPO_ROOT\"
BASE_URL=\"\$BASE_URL\" ADMIN_TOKEN=\"\$ADMIN_TOKEN\" bash tests/stress_test.sh
# stress.sh — запуск полного набора тестов (18+ операций, batch operations, visibility change)
REPO_ROOT="$(dirname "$(cd "$(dirname "$0")" && pwd)")"
VALUES_FILE="$REPO_ROOT/deploy/values.yaml"
HARDCORE_TEST="$REPO_ROOT/hardcore_test.sh"
# Извлечение параметров (скопировано из run.sh)
extract_param() {
local file="$1"
local key="$2"
grep "$key:" "$file" | head -1 | sed -n "s/.*$key: \"\([^\"]*\).*/\1/p"
}
extract_nested() {
local file="$1"
local section="$2"
local key="$3"
grep -A5 "^$section:" "$file" | grep "$key:" | sed -n "s/.*$key: \"\([^\"]*\).*/\1/p"
}
INGRESS_HOST=$(extract_nested "$VALUES_FILE" "ingress" "host")
ADMIN_TOKEN=$(extract_param "$VALUES_FILE" "token")
AWS_ACCESS_KEY_ID="SSAK-demo-shared-sqs"
AWS_SECRET_ACCESS_KEY="demo-secret-key-shared-sqs-ngcloud-2026"
AWS_DEFAULT_REGION="us-east-1"
BASE_URL="https://$INGRESS_HOST"
# Override из .env.local
ENV_LOCAL="$REPO_ROOT/tests-deploy/.env.local"
if [ -f "$ENV_LOCAL" ]; then
source "$ENV_LOCAL"
fi
echo "════════════════════════════════════════════"
echo "🧪 Полный набор тестов (stress)"
echo "════════════════════════════════════════════"
echo
export BASE_URL ADMIN_TOKEN AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_DEFAULT_REGION
bash "$HARDCORE_TEST"