ReportPortal зарекомендовал себя как мощное решение для управления результатами тестирования, но его развертывание и настройка могут сопровождаться ошибками, которые ставят в тупик команды. Умение эффективно отлаживать ReportPortal — ключевой навык для инженеров по качеству и DevOps. Эта статья — практическое руководство по диагностике и решению распространенных проблем, от ошибок запуска до проблем с агентами, с примерами конфигураций и кода.
Типичные проблемы начинаются на этапе запуска через Docker Compose. Одна из частых ошибок — нехватка памяти для Elasticsearch, который является частью стека ReportPortal. Симптом: контейнер elasticsearch постоянно перезапускается. Решение — явно указать лимиты памяти в docker-compose.yml. Пример исправленной секции:
```
elasticsearch:
image: elasticsearch:7.10.1
environment:
- discovery.type=single-node
- ES_JAVA_OPTS=-Xms1g -Xmx1g
ulimits:
memlock:
soft: -1
hard: -1
```
Другая частая проблема — ошибки подключения между сервисами (например, service-api не может найти service-uat). Это часто связано с порядком запуска и health-check’ами. Убедитесь, что в вашем docker-compose.yml используются корректные зависимости (`depends_on`) и что сервисы ожидают полной готовности друг друга. Иногда помогает увеличение таймаутов при старте.
Следующий крупный блок проблем связан с интеграцией агентов (например, для JUnit, TestNG, Cucumber или Robot Framework). Классическая ошибка: тесты выполняются, но результаты не появляются в ReportPortal. Первое, что нужно проверить — корректность файла конфигурации агента. Рассмотрим пример для агента Java (JUnit 5) и файла `reportportal.properties`:
```
rp.endpoint = http://your-reportportal-host:8080
rp.api.key = your_api_key_here
rp.project = default_personal
rp.launch = MY_AWESOME_LAUNCH
rp.enable = true
```
Ключевые моменты: убедитесь, что `rp.endpoint` доступен с машины, где запускаются тесты (проверьте файрволы и сетевые политики). API-ключ должен быть сгенерирован для правильного пользователя и проекта. Частая ошибка — опечатка в названии проекта (`default_personal` vs `default`).
Для отладки проблем с агентом включите детальное логирование. В том же файле свойств добавьте строки, настраивающие уровень логирования Logback (который используется агентом):
```
logging.level.com.epam.reportportal = DEBUG
logging.level.net.bytebuddy = WARN
```
Логи с уровнем DEBUG покажут детальный процесс отправки данных на сервер, что поможет локализовать проблему: будь то ошибка аутентификации (401), отсутствие проекта (404) или проблема с форматом данных.
Еще один сложный сценарий — проблемы с загрузкой вложений (скриншоты, логи). Если файлы не загружаются, проверьте настройки сервиса `service-api`, отвечающего за обработку бинарных данных. В переменных окружения контейнера `service-api` должны быть правильно заданы параметры для хранения файлов (например, `RP_BINARYSTORE_TYPE=filesystem`, `RP_FILESYSTEM_PATH=/data`). Убедитесь, что том `/data` смонтирован и доступен для записи.
Если ReportPortal работает, но работает медленно, особенно при работе с большими объемами тестов, стоит обратить внимание на настройки базы данных (PostgreSQL) и кэширования (Redis). Проверьте индексы в базе данных и рассмотрите возможность увеличения ресурсов, выделенных для этих контейнеров.
Для комплексной диагностики состояния системы используйте встроенные эндпоинты здоровья. Отправьте GET-запрос на `http://your-reportportal-host:8080/actuator/health`. Ответ в формате JSON покажет статус каждого микросервиса. Это первый шаг при любой нештатной ситуации.
В заключение, эффективная отладка ReportPortal строится на системном подходе: проверка логов каждого контейнера (`docker-compose logs -f service-api`), валидация конфигураций агентов и сетевой доступности. Использование приведенных примеров конфигураций и методов логирования позволит быстро выявлять и устранять проблемы, обеспечивая стабильную работу централизованной системы отчетности о тестировании.
Практическое руководство: отладка ReportPortal на реальных примерах кода
Практическое руководство по диагностике и устранению типичных ошибок в ReportPortal, включая проблемы с Docker, интеграцией агентов и загрузкой вложений, с конкретными примерами кода конфигураций.
383
2
Комментарии (5)