Всего тест-кейсов: 66
- Producer (Продюсер): 12 тестов
- Consumer (Консьюмер): 12 тестов
- Idempotence (Идемпотентность): 7 тестов
- Ordering (Порядок): 3 теста
- Offset Management (Управление офсетами): 5 тестов
- Error Handling (Обработка ошибок): 5 тестов
- Partitioning (Партиционирование): 5 тестов
- Consumer Groups (Группы консьюмеров): 1 тест
- Dead Letter Queue (Очередь отказов): 3 теста
- Transactions (Транзакции): 9 тестов
- Performance (Производительность): 4 теста
| ID | Название | Тип | Приоритет | Теги |
|---|---|---|---|---|
| TC-001 | Отправка одиночного сообщения в топик | Positive | CRITICAL | producer, smoke, critical |
| TC-002 | Массовая отправка сообщений (batch 100) | Positive | CRITICAL | producer, critical |
| TC-003 | Отправка сообщения с custom headers | Positive | NORMAL | producer |
| TC-004 | Отправка с ключом для партиционирования | Positive | CRITICAL | producer, smoke, critical |
| TC-005 | Отправка сообщения больше max.message.bytes | Negative | NORMAL | producer |
| TC-006 | Сжатие сообщений (gzip/lz4/snappy) | Positive | NORMAL | producer, compression |
| TC-007 | Гарантия acks=all | Positive | CRITICAL | producer, critical |
| TC-008 | Автоматический retry при временных ошибках | Positive | CRITICAL | producer, error-handling, critical |
| TC-009 | Таймаут запроса продюсера | Negative | NORMAL | producer, error-handling |
| TC-010 | Переполнение буфера продюсера | Negative | NORMAL | producer, error-handling |
| TC-011 | Транзакционная отправка сообщений | Positive | CRITICAL | producer, transactions |
| TC-012 | Сбор метрик продюсера | Positive | NORMAL | producer, performance |
Описание категории: Тесты продюсера проверяют базовую функциональность отправки сообщений, обработку ошибок, производительность и транзакционные возможности.
| ID | Название | Тип | Приоритет | Теги |
|---|---|---|---|---|
| TC-009 | Чтение сообщений с начала топика (earliest) | Positive | CRITICAL | consumer, smoke, critical |
| TC-010 | Чтение только новых сообщений (latest) | Positive | CRITICAL | consumer, critical |
| TC-011 | Чтение сообщений с headers | Positive | NORMAL | consumer |
| TC-011A | Таймаут сессии и ребалансировка | Negative | NORMAL | consumer, error-handling |
| TC-011B | Механизм heartbeat | Positive | NORMAL | consumer |
| TC-011C | Ручное назначение партиций | Positive | NORMAL | consumer |
| TC-011D | Seek to beginning и end | Positive | NORMAL | consumer, offset |
| TC-011E | Метрики lag консьюмера | Positive | NORMAL | consumer, performance |
| TC-012 | Несколько консьюмеров в одной группе | Positive | CRITICAL | consumer, consumer-group, critical |
| TC-013 | Pause и resume консьюмера | Positive | NORMAL | consumer |
| TC-014 | Лимит max.poll.records | Positive | NORMAL | consumer |
| TC-015 | Таймаут poll | Positive | NORMAL | consumer |
Описание категории: Тесты консьюмера покрывают различные стратегии чтения, управление партициями, механизмы координации и обработку ошибок.
| ID | Название | Тип | Приоритет | Теги |
|---|---|---|---|---|
| TC-016 | Включение идемпотентного producer | Positive | BLOCKER | idempotence, smoke, critical |
| TC-017 | Обработка дубликатов через message ID | Positive | CRITICAL | idempotence, critical |
| TC-023 | Проверка идемпотентности producer | Positive | CRITICAL | idempotence, critical |
| TC-024 | Дубликаты при retry | Negative | NORMAL | idempotence |
| TC-025 | Exactly-once доставка сообщений | Positive | BLOCKER | idempotence, smoke, critical |
| TC-025A | Producer ID и sequence number | Positive | NORMAL | idempotence |
| TC-026 | Порядок сообщений в partition (идемпотентность) | Positive | CRITICAL | idempotence, exactly-once |
Описание категории: Тесты идемпотентности проверяют механизмы предотвращения дубликатов и гарантии exactly-once семантики.
| ID | Название | Тип | Приоритет | Теги |
|---|---|---|---|---|
| TC-021 | Гарантия порядка в одной партиции | Positive | BLOCKER | ordering, smoke, critical |
| TC-027 | Порядок сообщений между партициями | Negative | NORMAL | ordering |
| TC-028 | Гарантия порядка для сообщений с ключом | Positive | CRITICAL | ordering, critical |
Описание категории: Тесты порядка проверяют гарантии упорядоченности сообщений внутри партиции и между партициями.
| ID | Название | Тип | Приоритет | Теги |
|---|---|---|---|---|
| TC-018 | Автоматический commit офсетов | Positive | NORMAL | offset |
| TC-019 | Стратегия reset офсетов | Positive | NORMAL | offset |
| TC-019A | Commit офсетов во время ребалансировки | Positive | NORMAL | offset, consumer-group |
| TC-027 | Ручной sync commit после обработки | Positive | CRITICAL | offset, smoke, critical |
| TC-029 | Commit определенного offset | Positive | NORMAL | offset |
Описание категории: Тесты управления офсетами проверяют различные стратегии commit и обработку сценариев с потерей данных.
| ID | Название | Тип | Приоритет | Теги |
|---|---|---|---|---|
| TC-029 | Обработка ошибок сериализации | Negative | CRITICAL | error-handling, critical |
| TC-029A | Обработка ошибок десериализации | Negative | CRITICAL | error-handling, critical |
| TC-029B | Восстановление после сетевых ошибок | Negative | NORMAL | error-handling |
| TC-029C | Обработка недоступности брокера | Negative | CRITICAL | error-handling, critical |
| TC-029D | Обработка отсутствующего топика | Negative | NORMAL | error-handling |
Описание категории: Тесты обработки ошибок проверяют устойчивость системы к различным типам сбоев и корректность recovery механизмов.
| ID | Название | Тип | Приоритет | Теги |
|---|---|---|---|---|
| TC-020 | Распределение сообщений по партициям | Positive | CRITICAL | partitioning, critical |
| TC-022 | Один ключ → одна партиция | Positive | CRITICAL | partitioning, smoke, critical |
| TC-022A | Изменение количества партиций | Negative | NORMAL | partitioning |
| TC-038 | Round-robin без ключа | Positive | NORMAL | partitioning |
| TC-039 | Hash партиционирование по ключу | Positive | CRITICAL | partitioning, smoke, critical |
Описание категории: Тесты партиционирования проверяют механизмы распределения сообщений по партициям и консистентность маршрутизации.
| ID | Название | Тип | Приоритет | Теги |
|---|---|---|---|---|
| TC-037 | Ребалансировка группы консьюмеров | Positive | CRITICAL | consumer-group, smoke, critical |
Описание категории: Тесты групп консьюмеров проверяют координацию между несколькими консьюмерами, механизмы ребалансировки и распределение партиций.
| ID | Название | Тип | Приоритет | Теги |
|---|---|---|---|---|
| TC-031 | Маршрутизация в DLQ с метаданными | Positive | CRITICAL | dlq, critical |
| TC-032 | Retry обработки из DLQ | Positive | NORMAL | dlq |
| TC-049 | Отправка poison pill в DLQ после N попыток | Positive | CRITICAL | dlq, smoke, critical |
Описание категории: Тесты DLQ проверяют механизмы обработки проблемных сообщений, сохранение метаданных об ошибках и возможность повторной обработки.
| ID | Название | Тип | Приоритет | Теги |
|---|---|---|---|---|
| TC-040 | Транзакционная отправка сообщений | Positive | CRITICAL | transactions, smoke, critical |
| TC-041 | Commit транзакции | Positive | CRITICAL | transactions, critical |
| TC-042 | Rollback транзакции | Positive | CRITICAL | transactions, critical |
| TC-043 | Read committed isolation level | Positive | CRITICAL | transactions, critical |
| TC-044 | Exactly-once семантика | Positive | BLOCKER | transactions, smoke, critical |
| TC-045 | Транзакции между несколькими топиками | Positive | CRITICAL | transactions, critical |
| TC-046 | Timeout транзакции | Negative | NORMAL | transactions, error-handling |
| TC-047 | Координация producer и consumer транзакций | Positive | CRITICAL | transactions, critical |
| TC-048 | Восстановление после сбоя транзакции | Negative | NORMAL | transactions, error-handling |
Описание категории: Тесты транзакций проверяют ACID гарантии, координацию между продюсером и консьюмером, и обработку сбоев в транзакциях.
| ID | Название | Тип | Приоритет | Теги |
|---|---|---|---|---|
| TC-033 | Бенчмарк throughput продюсера | Performance | NORMAL | performance |
| TC-034 | Измерение end-to-end латентности | Performance | NORMAL | performance |
| TC-035 | Оптимизация размера batch | Performance | NORMAL | performance |
| TC-036 | Consumer lag под нагрузкой | Performance | NORMAL | performance |
Описание категории: Тесты производительности измеряют throughput, latency, оптимальные параметры батчинга и поведение под высокой нагрузкой.
Проверка критичной функциональности:
mvn test -Dgroups=smokeВключает:
- TC-001: Отправка одиночного сообщения
- TC-004: Отправка с ключом
- TC-009: Чтение с начала (Consumer)
- TC-016: Идемпотентный producer
- TC-021: Порядок в партиции
- TC-022: Ключ → партиция
- TC-025: Exactly-once
- TC-027: Ручной commit
- TC-037: Ребалансировка группы
- TC-039: Hash партиционирование
- TC-040: Транзакционная отправка
- TC-044: Exactly-once семантика
- TC-049: DLQ базовая функциональность
Все высокоприоритетные тесты:
mvn test -Dgroups=criticalВсе тесты включая граничные случаи:
mvn clean testСамое быстрое выполнение:
mvn clean test -Pparallel -Dthread.count=2Примечание: используем 2 потока из-за ограничений Aiven на количество партиций
Producer (12)
├── Базовые операции (4): TC-001..TC-004 ✓
├── Обработка ошибок (4): TC-005, TC-009, TC-010 + TC-008 ✓
├── Производительность (2): TC-006, TC-012 ✓
└── Транзакции (2): TC-007, TC-011 ✓
Consumer (12)
├── Стратегии чтения (3) ✓
├── Управление партициями (3) ✓
├── Механизмы координации (3) ✓
├── Обработка ошибок (2) ✓
└── Производительность (1) ✓
Idempotence (7)
├── Идемпотентность продюсера (3) ✓
├── Обработка дубликатов (2) ✓
├── Exactly-once (1) ✓
└── Транзакционная идемпотентность (1) ✓
Ordering (3)
├── Гарантированный порядок (2) ✓
└── Нарушения порядка (1) ✓
Offset Management (5)
├── Стратегии commit (4) ✓
└── Сценарии отказов (1) ✓
Error Handling (5)
├── Ошибки сериализации (2) ✓
├── Сетевые ошибки (2) ✓
└── Ошибки доступности (1) ✓
Partitioning (5)
├── Стратегии распределения (4) ✓
└── Граничные случаи (1) ✓
Consumer Groups (1)
└── Ребалансировка (1) ✓
DLQ (3)
├── Операции DLQ (2) ✓
└── Poison pill (1) ✓
Transactions (9)
├── Базовые транзакции (3) ✓
├── Exactly-once (2) ✓
├── Координация (2) ✓
└── Обработка сбоев (2) ✓
Performance (4)
├── Throughput (1) ✓
├── Latency (1) ✓
├── Оптимизация (1) ✓
└── Нагрузка (1) ✓
- Запустить измененную категорию тестов
- Запустить smoke тесты
- Запустить полный набор при значительных изменениях
Пример:
# Изменили producer → запустить producer тесты
mvn test -Dtest=ProducerTests
# Smoke тесты
mvn test -Dgroups=smoke
# Полный набор
mvn clean test- Smoke тесты (при каждом коммите) - ~7 минут
- Полный набор (при Pull Request) - ~30 минут
- Параллельный полный набор (ночные запуски) - ~12 минут
Пример конфигурации:
# .github/workflows/tests.yml
on_push:
- mvn test -Dgroups=smoke
on_pull_request:
- mvn clean test
on_schedule:
- mvn clean test -Pparallel -Dthread.count=2- Последовательный полный набор (проверка стабильности)
- Параллельный полный набор (проверка thread-safety)
- Повтор на всех платформах (Windows, Linux, macOS)
Пример:
# Шаг 1: Sequential
mvn clean test
# Шаг 2: Parallel
mvn clean test -Pparallel -Dthread.count=2
# Шаг 3: Repeat 3 times
for i in {1..3}; do
mvn clean test -Pparallel -Dthread.count=2
donemvn test -Dtest=ProducerTestsmvn test -Dtest=ConsumerTestsmvn test -Dtest=IdempotenceTestsmvn test -Dtest=OrderingTestsmvn test -Dtest=OffsetTestsmvn test -Dtest=ErrorHandlingTestsmvn test -Dtest=PartitioningTestsmvn test -Dtest=ConsumerGroupTestsmvn test -Dtest=DlqTestsmvn test -Dtest=TransactionsTestsmvn test -Dtest=PerformanceTests# TC-001: Отправка одиночного сообщения
mvn test -Dtest=ProducerTests#testSendSingleMessage
# TC-009: Чтение с начала (Consumer)
mvn test -Dtest=ConsumerTests#testReadFromBeginning
# TC-016: Идемпотентный producer
mvn test -Dtest=IdempotenceTests#testEnableIdempotence
# TC-040: Транзакционная отправка
mvn test -Dtest=TransactionsTests#testTransactionalSend
# TC-049: DLQ после N попыток
mvn test -Dtest=DlqTests#testSendToDlqAfterRetries- Positive tests: 52 (79%)
- Negative tests: 14 (21%)
- Performance tests: 4 (6%)
- BLOCKER: 3 тестов (5%)
- CRITICAL: 32 теста (48%)
- NORMAL: 31 тест (47%)
smoke: 13 тестовcritical: 35 тестовproducer: 12 тестовconsumer: 12 тестовtransactions: 9 тестовidempotence: 7 тестовerror-handling: 10 тестовoffset: 5 тестовpartitioning: 5 тестовdlq: 3 тестовordering: 3 тестовconsumer-group: 2 тестаperformance: 4 тестаexactly-once: 1 тест
- Максимум партиций: 2 (все тесты адаптированы)
- SSL: обязателен (настроен в конфигурации)
- Топики: автоматическое создание с 2 партициями
- Используйте параллельное выполнение с
thread.count=2 - При создании топиков используйте
createTestTopic(2) - SSL сертификаты должны быть в
src/test/resources/certs/
# Запуск тестов с генерацией Allure данных
mvn clean test
# Генерация и открытие отчета
mvn allure:servemvn clean test
mvn surefire-report:report| Компонент | Версия | Статус |
|---|---|---|
| Java | 17+ | ✅ |
| Maven | 3.6+ | ✅ |
| Kafka Clients | 3.6.1 | ✅ |
| JUnit | 5.10.1 | ✅ |
| Allure | 2.25.0 | ✅ |
| AssertJ | 3.24.2 | ✅ |
| Aiven Cloud | Latest | ✅ |
Общее количество тестов: 66
Время выполнения:
- Smoke: ~7 минут
- Critical: ~15 минут
- Full Sequential: ~30 минут
- Full Parallel (2 threads): ~12 минут
Версия: v1.2
Дата: 2026-02-23
Автор: Vitaliy Popravka - QA Automation Engineer
Статус: COMPLETE ✅
| Версия | Дата | Изменения |
|---|---|---|
| v1.2 | 2026-02-23 | Устранены коллизии ID в Producer: TC-005 (oversized), TC-006 (compression), TC-007..TC-012 (последовательная нумерация вместо TC-006A/B/C/D). Исправлен TC-025B → TC-026 в Idempotence. Синхронизация с кодом после рефакторинга ProducerTests. |
| v1.1 | 2026-01-18 | Первичное наполнение матрицы (66 тест-кейсов). |