Проблема падающих автотестов, которая решилась одним методом
Привет, охотники! 🏹 После очередного релиза я заметила, что мои UI автотесты начали массово “падать” по таймауту, а иногда с click interception.
С функциональностью все хорошо, но автотесты упорно бежали вперед и пытались кликнуть на элемент, который был процессе прогрузки
На проекте мы практически не используем time sleep, так как они сильно увеличивают время прогона автотестов, поэтому я старалась всеми силами продлить поиск элемента для клика в автотестах неявными ожиданиями
В какой-то момент я поняла, что моему автотесту все равно на маску загрузки - элемент уже был в DOM и находился по методу find и wait_until_visible
Тогда ко мне пришло осознание, что все мои неявные ожидания с гигантскими таймаутами, заточенными под ожидание отображения элемента мгновенно проходили, и автотест перемещался на шаг click
Поняла я это не сразу (я пыталась фиксить ат два дня), но, когда поняла, решение оказалось очень простым - ставить ожидание не на отображение, а на скрытие! Более того завязываться надо было не на элемент, а на скрытие маски прогрузки (load mask)
Написав 1 метод, ожидающий, что load маска исчезла, и заменив все ретраи (retry_until_visible) на него - я решила проблему (и использовала при этом маленькие таймауты)
Поделитесь своими открытиями в автоматизации тестирования
· 11 ч
Правый жучëк пытается прорваться)) Не люблю писать UI тесты, гемора много, а профита мало. Особенно раздражает safari, своя песочница под него нужна (
ответить
коммент удалён
· 11 ч
Спасибо, что сказали, за жучком последим🫡 А почему профита мало от UI?
ответить
ответ удалён
· 11 ч
Резные браузеры могут разную вёрстку по разному отображать, особонно Сафари. Писать e2e тесты нужно, но они отлавливают только совсем большие фейлы. Либо много тестов нужно, на каждый нюанс, и прогонять по ферме как минимум Хром, Яндекс, ФайрФокс и Сафари, что доооолго.. В общем, много кейсов не закроешь, а времени, что на прогон, что на написание потратишь много. Нужно, порой, вспоминать принцип Парето 😉
ответить
ответ удалён