Наша команда тестировала наше приложение с помощью Selenium, так как оно сильно зависит от JavaScript, у нас всегда были проблемы с тестами, которые иногда терпели неудачу.Поскольку число тестов увеличилось, вероятность того, что по крайней мере один из двух тестов завершится неудачно в полном цикле, стала определенностью.
Мы недавно выяснили, что, вероятно, у нас есть состояние гонки, при котором селен будет переходить по ссылкам до того, какJavaScript инициализации имел возможность присоединить обработчики событий к элементу, по которому щелкают.Конечно, в этот момент ожидаемые нами эффекты не случаются, и мы получаем провальный тест.
В настоящее время мы добавили небольшую задержку перед щелчками, чтобы дать время инициализации кода JavaScript дляВ завершение, это, очевидно, немного хакерский, добавляет время к общему выполнению теста и не гарантирует, что тесты все равно не будут терпеть неудачу, поэтому мы ищем лучшее решение.
Лучшая идея, которую мы придумалидо сих пор нужно внедрить скрытый элемент в DOM, которого Selenium может ждать, прежде чем запустить событие click, чтобы узнать, что оно готово.Это потребует дополнительных затрат времени разработчика, когда мы работаем с нашими асинхронными событиями, удаляя и добавляя элемент.Также он добавляет на наши страницы дополнительные материалы, которые действительно не нужны для приложения.
У кого-нибудь есть какие-нибудь лучшие стратегии?Что вы сделали, чтобы эффективно решить эту проблему?