Ответ
Smoke-тестирование (проверка «дымом») выполняется в стабильном тестовом окружении, максимально приближенном к продакшену, чтобы убедиться, что ключевые функции работают после сборки или деплоя.
Типичные окружения для smoke-тестов:
- Staging / Pre-Production — наилучший вариант, так как повторяет продакшен по конфигурации, данным и сервисам, но изолирован от реальных пользователей.
- QA / Test — стандартное окружение для регулярных проверок.
- Production — иногда используется для быстрой проверки после деплоя (например, health-check эндпоинтов).
- DEV — редко, только для ранней проверки критических путей.
Пример smoke-теста для проверки здоровья API (Python):
import requests
def test_smoke_api_health():
# Проверяем, что основное API отвечает
response = requests.get('https://staging-api.example.com/health', timeout=5)
assert response.status_code == 200, f"Expected 200, got {response.status_code}"
assert response.json().get('status') == 'OK', "Service status is not OK"
print("Smoke test passed: API is healthy")
Почему staging? Потому что только там можно достоверно проверить интеграцию всех компонентов в условиях, близких к боевым.