Проблема падающих автотестов, которая решилась одним методом
Привет, охотники! 🏹 После очередного релиза я заметила, что мои UI автотесты начали массово “падать” по таймауту, а иногда с click interception.
С функциональностью все хорошо, но автотесты упорно бежали вперед и пытались кликнуть на элемент, который был процессе прогрузки
На проекте мы практически не используем time sleep, так как они сильно увеличивают время прогона автотестов, поэтому я старалась всеми силами продлить поиск элемента для клика в автотестах неявными ожиданиями
В какой-то момент я поняла, что моему автотесту все равно на маску загрузки - элемент уже был в DOM и находился по методу find и wait_until_visible
Тогда ко мне пришло осознание, что все мои неявные ожидания с гигантскими таймаутами, заточенными под ожидание отображения элемента мгновенно проходили, и автотест перемещался на шаг click
Поняла я это не сразу (я пыталась фиксить ат два дня), но, когда поняла, решение оказалось очень простым - ставить ожидание не на отображение, а на скрытие! Более того завязываться надо было не на элемент, а на скрытие маски прогрузки (load mask)
Написав 1 метод, ожидающий, что load маска исчезла, и заменив все ретраи (retry_until_visible) на него - я решила проблему (и использовала при этом маленькие таймауты)
Поделитесь своими открытиями в автоматизации тестирования
· 19.04
Ничего не тестирую — всё получается быстро и без сложностей.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён