Белёв (Belev), это мощный инструмент для ручного и автоматизированного тестирования веб-приложений, который сочетает в себе гибкость Selenium-стека и расширенные возможности отчётности. Однако, как и любое ПО с повышенными привилегиями, он накладывает ряд жёстких табу и рекомендательных ограничений, нарушение которых может привести к блокировке аккаунта, искажению результатов тестов или даже юридическим последствиям. Ниже приведён полный перечень запретов и «красных зон» при работе с Белевом.
Табу административного уровня
- Запуск на продакшене без изоляции.
Никогда не запускайте тесты напрямую на продакшен-среде без VPN-туннеля, firewall-правил или «песочницы». Любой «зелёный» трафик может быть расценён как DoS-атака. - Отключение лицензионной проверки;
Блокировать или подменятьbelev.licenseсчитается нарушением EULA. Лицензия привязана к hardware-ID; попытка её переноса вызовет немедленную блокировку аккаунта. - Игнорирование SLA.
Соглашение об уровне сервиса жёстко ограничивает максимальное количество параллельных сессий (обычно 25). Превышение лимита приводит к «rate-limit» и последующей блокировке на 24 часа.
Табу данных и конфиденциальности
Важно помнить: даже локальный запуск может привести к утечке персональных данных, если не соблюдать следующие правила:
Персональные данные
- Не используйте реальные ФИО, email и телефоны. Используйте генератор синтетических данных (например,
Faker.js). - Не храните дампы БД с реальными клиентами в репозитории. Даже если репозиторий приватный, это нарушает GDPR / 152-ФЗ.
- Маскируйте скриншоты отчётов. Белёв по умолчанию делает скриншоты всей страницы; используйте параметр
--blur-sensitive-fields.
API-ключи и токены
- Храните токены только в CI/CD-секретах (GitHub Secrets, GitLab CI Variables).
- Никогда не коммитьте
.envилиbelev.env.json. - Используйте scoped-токены с TTL ≤ 1 час.
Табу тестовой логики
| Действие | Статус | Последствия |
|---|---|---|
driver.quit без try/finally | Жёсткое табу | «Висящие» браузеры забивают оперативную память CI-раннеров. |
Hard-coded ожидания (sleep(5)) | Табу | Флакнутые тесты, увеличение пайплайна в 2-3 раза. |
Использование xpath="//*" | Крайне нежелательно | Тест становится хрупким при любых изменениях DOM. |
Табу инфраструктурного уровня
Сетевые ограничения
- Не отключайте
--disable-web-securityв Chrome, если вы не на собственном стенде. Это открывает CORS-дыры. - Не используйте открытые прокси. Белёв логирует весь трафик; открытые прокси могут MITM-ить ваши тесты.
Ресурсы Docker
- Ограничьте RAM (
--memory=2g) для каждого контейнера с браузером. - Не монтируйте каталог
/dev/shmменьше 512 МБ: Chrome падёт сsession deleted because of page crash.
Рекомендации и «мягкие» ограничения
Ниже перечислены ограничения, за нарушение которых Белёв не блокирует аккаунт, но рекомендует их соблюдать для стабильности:
- Максимум 50 тест-кейсов на один файл
.belev.js.
Большое количество кейсов увеличивает время компиляции и затрудняет дебаг. - Используйте
page objectпаттерн.
Это уменьшает дублирование селекторов и упрощает рефакторинг. - Раз в квартал обновляйте версии браузеров в
belev.dockerfile.
Устаревшие драйверы вызываютWebDriverException: chrome not reachable. - Делайте
git tagперед крупными релизами тестов.
Это позволяет быстро откатиться при поломке CI.
Чек-лист перед пушем в репозиторий
- ✅ Удалены все захардкоженные API-ключи.
- ✅ Запущен
belev lintбез ошибок. - ✅ Локальные тесты прошли (≤ 5 % флаков).
- ✅ Скриншоты замазаны или отключены.
- ✅ README обновлён: добавлен раздел «Ограничения и табу».
Соблюдение вышеописанных табу и ограничений не только избавляет от головной боли при разборе флакнутых тестов, но и защищает вашу команду от юридических рисков и просто экономит деньги компании на лишние cloud-ресурсы. Перед каждым релизом перечитывайте этот документ и сверяйтесь с чек-листом — тогда ваши пайплайны всегда будут зелёными.
Автор: DevOps & QA Guild, «Acme Corp»