Ответ
Smoke-тестирование имеет наивысший приоритет среди всех видов проверок после сборки (build).
Причина: Его цель — быстро определить, является ли сборка достаточно стабильной для запуска более затратных по времени тестов (регрессионных, интеграционных). Если smoke-тест падает, дальнейшее тестирование приостанавливается до исправления критических дефектов.
Критерии smoke-теста:
- Проверяет критический путь приложения (например: запуск, авторизация, открытие главной страницы).
- Выполняется быстро (несколько минут).
- Неглубокий — проверяет наличие, а не корректность всех деталей.
Пример smoke-теста для веб-приложения:
import requests
def test_smoke_critical_path():
"""Smoke-тест: проверка доступности основных эндпоинтов."""
base_url = "https://api.example.com"
critical_endpoints = [
"/health", # Проверка здоровья сервиса
"/api/v1/login", # Критичный функционал авторизации
"/api/v1/products" # Основной публичный эндпоинт
]
for endpoint in critical_endpoints:
response = requests.get(f"{base_url}{endpoint}", timeout=5)
# Ожидаем любой успешный или корректный клиентский код ответа
assert response.status_code in [200, 401, 403],
f"Smoke test failed for {endpoint}: {response.status_code}"