Асинхронные процессы — это операции, которые выполняются не сразу, а через время или в фоне (например, отправка письма, обработка платежа, обновление статуса заказа).
Тестируют их с учётом задержек, очередей и событий, проверяя, что результат наступает корректно, даже если с задержкой.
Пример:
Пользователь оформляет заказ → письмо с подтверждением приходит через 1–2 минуты.
QA проверяет, что письмо действительно пришло, статус заказа обновился и ошибок в логах нет.
Асинхронный процесс — это действие, которое выполняется параллельно основному потоку и не требует мгновенного ответа.
Приложение не ждёт завершения задачи, а просто запускает её “в фоне”.
Примеры:
Отправка email или push-уведомления после регистрации.
Обработка платежей и изменение статусов заказов.
Синхронизация данных с внешними системами (CRM, 1С, API партнёров).
Очереди сообщений (Kafka, RabbitMQ).
Асинхронное тестирование сложнее, потому что:
результат появляется не сразу;
может быть задержка между действием и результатом;
ошибки логики могут быть не видны в UI, а только в логах или очередях.
| Этап | Что делает тестировщик | Пример |
|---|---|---|
| 1. Отправить событие | Выполнить действие, запускающее процесс | Создать заказ в UI или через API |
| 2. Проверить очередь / логи | Убедиться, что событие попало в очередь (Kafka, RabbitMQ, лог сервера) | Проверить, что сообщение отправлено в order.events |
| 3. Подождать выполнение | Установить таймаут или использовать polling (периодические запросы) | Проверять каждые 5 сек статус заказа |
| 4. Проверить результат | Убедиться, что состояние системы обновилось | Статус заказа стал “оплачен”, письмо пришло |
| 5. Проверить негативные сценарии | Ошибочные входные данные, сбой в сервисе | Проверить, что при ошибке в платёжном API система не зависает |
Для тестирования:
Postman / RestAssured / PyTest — для API-запросов с повторной проверкой статуса.
БД и очереди (Kafka, RabbitMQ, Redis) — проверка сообщений и статусов.
Логи (ELK, Kibana) — отслеживание асинхронных ошибок.
Mock-сервисы (WireMock, Mockoon) — имитация внешних ответов с задержкой.
Приёмы:
Использование polling — повторных запросов с интервалом (например, раз в 5 секунд).
Настройка таймаута ожидания (например, 30–60 секунд).
Верификация по событиям или флагам в БД (например, status=completed).
Тестирование автоматической рассылки писем:
Пользователь регистрируется через API.
Тест ждёт 30 секунд.
Проверяется таблица email_queue — есть ли задание на отправку.
Проверяется почтовый ящик или mock-сервис — письмо пришло.
Проверяется статус в БД — email_sent = true.
💡 Итог:
Асинхронное тестирование = проверка отложенных процессов,
где важно не только результат, но и время, порядок и устойчивость выполнения.
Чтобы пожаловаться или сообщить об ошибке, войдите в аккаунт или зарегистрируйтесь.