Табу и ограничения при работе с Белевом

Табу и ограничения при работе с Белевом: узнай, как не нарваться на неприятности и сохранить репутацию

Белёв (Belev), это мощный инструмент для ручного и автоматизированного тестирования веб-приложений, который сочетает в себе гибкость Selenium-стека и расширенные возможности отчётности. Однако, как и любое ПО с повышенными привилегиями, он накладывает ряд жёстких табу и рекомендательных ограничений, нарушение которых может привести к блокировке аккаунта, искажению результатов тестов или даже юридическим последствиям. Ниже приведён полный перечень запретов и «красных зон» при работе с Белевом.

Табу административного уровня

  • Запуск на продакшене без изоляции.
    Никогда не запускайте тесты напрямую на продакшен-среде без VPN-туннеля, firewall-правил или «песочницы». Любой «зелёный» трафик может быть расценён как DoS-атака.
  • Отключение лицензионной проверки;
    Блокировать или подменять belev.license считается нарушением EULA. Лицензия привязана к hardware-ID; попытка её переноса вызовет немедленную блокировку аккаунта.
  • Игнорирование SLA.
    Соглашение об уровне сервиса жёстко ограничивает максимальное количество параллельных сессий (обычно 25). Превышение лимита приводит к «rate-limit» и последующей блокировке на 24 часа.

Табу данных и конфиденциальности

Важно помнить: даже локальный запуск может привести к утечке персональных данных, если не соблюдать следующие правила:

Персональные данные

  1. Не используйте реальные ФИО, email и телефоны. Используйте генератор синтетических данных (например, Faker.js).
  2. Не храните дампы БД с реальными клиентами в репозитории. Даже если репозиторий приватный, это нарушает GDPR / 152-ФЗ.
  3. Маскируйте скриншоты отчётов. Белёв по умолчанию делает скриншоты всей страницы; используйте параметр --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

  1. Ограничьте RAM (--memory=2g) для каждого контейнера с браузером.
  2. Не монтируйте каталог /dev/shm меньше 512 МБ: Chrome падёт с session deleted because of page crash.

Рекомендации и «мягкие» ограничения

Ниже перечислены ограничения, за нарушение которых Белёв не блокирует аккаунт, но рекомендует их соблюдать для стабильности:

  • Максимум 50 тест-кейсов на один файл .belev.js.
    Большое количество кейсов увеличивает время компиляции и затрудняет дебаг.
  • Используйте page object паттерн.
    Это уменьшает дублирование селекторов и упрощает рефакторинг.
  • Раз в квартал обновляйте версии браузеров в belev.dockerfile.
    Устаревшие драйверы вызывают WebDriverException: chrome not reachable.
  • Делайте git tag перед крупными релизами тестов.
    Это позволяет быстро откатиться при поломке CI.

Чек-лист перед пушем в репозиторий

  1. ✅ Удалены все захардкоженные API-ключи.
  2. ✅ Запущен belev lint без ошибок.
  3. ✅ Локальные тесты прошли (≤ 5 % флаков).
  4. ✅ Скриншоты замазаны или отключены.
  5. ✅ README обновлён: добавлен раздел «Ограничения и табу».

Соблюдение вышеописанных табу и ограничений не только избавляет от головной боли при разборе флакнутых тестов, но и защищает вашу команду от юридических рисков и просто экономит деньги компании на лишние cloud-ресурсы. Перед каждым релизом перечитывайте этот документ и сверяйтесь с чек-листом — тогда ваши пайплайны всегда будут зелёными.



Автор: DevOps & QA Guild, «Acme Corp»