Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Локально запускается, в TeamCity - падает. В чем причина?

intellij
team-city
webdriverio
cucumber
javascript
Теги: #<Tag:0x00007f7b64aa38e0> #<Tag:0x00007f7b64aa3778> #<Tag:0x00007f7b64aa3638> #<Tag:0x00007f7b64aa34f8> #<Tag:0x00007f7b64aa33b8>

(Alex) #1

Всем здравствуйте!

Есть тесты, написанные на JS (WebdriverIO, Cucumber).
При запуске тестов из под IntelliJ IDEA все тесты работают, ничего не падает. Когда же эти самые тесты запускаются в TeamCity, то откуда-то начинают вылазить ошибки с ожиданиями, не найденными элементами и прочее. Запускаешь опять этот же тест локально - все работает.
При другом запуске TeamCity предыдущая ошибка может не вылезть, а вылезет какая-то другая. То есть абсолютно рандомно, как лотерея. Из-за этого билд ни разу не показал зеленый свет.
В чем может быть проблема?
Очевидно, моих 1,5 года опыта недостаточно, чтобы разобраться в этом.


(Lev Yarushin) #2

Попробуйте воссоздать среду в которой гоняются тесты локально, при помощи VM,Docker и т.п.
Возможно дело в разнице в производительности локальной машины и раннера на CI


#3

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


(Bohdan Harasym) #4

можлива причина - паралельний запуск.


#5

Привет.

У агента есть прикол, если он запускается не от имени реального пользователя. У него тогда могут возникнуть траблы с отрисовкой графики в браузере. А по дефолту он стартует как сервис в ОС.

Попробуй запустить агент от имени реального пользователя с рабочим столом.


(Павел Евгеньевич) #7

проблем может быть множество. От нехватки памяти на машине, или долгом response, до неправильно написанных тестов.
Если запускаешь с помощью wdio, попробуй уменьшить количество инстансов при запуске, 2-3 браузера на прогон. Если валится определенный спек, запусти только его.
В большей вероятностью у вас не правильно описаны ожидания.
попробуйте перед кликами делать ожидания

const element = browser.$('/div');
element.waitForVisible();
element.click()

(Dmytro Shtanko) #8

Больше чем уверен что проблема именно в разрешении хедлесс браузера TeamCity. В идеале, сделай такую же как и на рабочей машине.


(Марина) #9

Попробуй при прогоне записывать в логи информацию о том, при каком разрешении выполнялся тест. Вероятно, проблема в разрешении на агенте, сама с таким сталкивалась часто.