Подключение UI тестов к TeamCity, первые шаги в настройках

Привет!
Настал тот час, когда есть небольшая стопка тестов (Java + Selenide + Junit + Allure, собираю Maven) и хочется их запустить на qa в Тим Сити. Хранятся тесты в gitlab
Сервер выделен без GUI, мощность небольшая.
Может есть какие-то советы по настройке? Или годные статьи?
Пока вычитала про решение с утилитой xvfb, но не совсем разобралась с + и -
Запуск тестов планируется ежедневно в 10

Да там ничего сложного.
Тестам много памяти-то и не требуется.
Варианта два: либо через headless, либо xvfb.

Лично я предпочитаю headless: не требуется установка или настройка, в теории работает чуть быстрее. Из минусов: люди поговаривают, что в режиме headless некоторые тесты глючат, но я на своих проектах таких проблем не наблюдаю.

4 лайка

“Из минусов: люди поговаривают, что в режиме headless некоторые тесты глючат, но я на своих проектах таких проблем не наблюдаю.” - и ведь не врут !

На предыдущей работе запускал с headless и они в самом деле некоторые глючат.
Т.е. вот запускаешь у себя локально на машине в оконном режиме - и всё гуд.
Запускаешь в headless на TeamCity например - и fail абсолютно в непредсказуемом месте.
Так что да, совет будет только один - добиваться запуска всегда ЛИБО только в оконном, ЛИБО всегда в headless, но тогда у себя локально вы тесты дебажить будете тоже в headless, что абсолютно глупо, неудобно и неправильно.

В headless имеет смысл запускать тесты ну оооочень примитивного рода.

2 лайка

Вполне нормально гоняем “headless тесты” в ТС, никаких проблем именно связанных с headless-mode не наблюдается.
Расписание запуска тестов настраивается в через schedule триггеры в каждой билд джобе.

Я сильно подозреваю, что флакают вовсе не из-за headless, а по другим причинам. Причин множество, об этом есть отдельные доклады на конференциях. А headless или teamcity лишь увеличивают вероятность тех причин

попробуй, в первую очередь, установить стабильное разрешение для headless браузера, сто раз перепроверь свои xpath (css selectors) и добавь адекватные тайминги для ожидания элементов, это список наиболее частых проблем стабильности в headless

Могу посоветовать

  1. 1ым делом зайти в настройки админа и поменять дефоулт значения:
  • макс размер артефактов
  • и макс время для Step - он может зафейлить джобу просто, потому что у тебя timeout словился
  1. Когда будешь собирать артефакты, например allure-result, allure-report их нужно складировать в архив через указание .zip (это для обхода на тимсити кол-во элементов в качестве артефактов)
    или например, если у тебя Selenoid и ты записываешь видосы из контейнера, то тоже лучше все в архив кидать

  2. Заводить и плодить свои джобы лучше через Template

  • так как глобально это будет отражаться сразу и на всех наследников
  1. Максимально по общему пытаться разделять работу джоб
  • например 1ая джоба для тестов, после ее генерация allure, 2ая например это доставка результатов и рассылка об успешности по почте необходимым ребятам

По поводу запуска тестов headless или не headless:
конкретно на TeamCity работает аналогично как из под локального запуска и проблем не ловим.
Мы прогоняем наши тесты на наших агентах(Mac OS) и на агентах тимсити из Linux пула

Попробуй Selenoid. Поднимаем Selenium в Docker за 2 минуты

1 лайк

на нем и остановились :slight_smile: