Почему автоматизированные инструменты с графическим интерфейсом настолько ненадежны?

Около полутора лет я работал с SilkTest, инструментом автоматизации с графическим интерфейсом, как для настольных, так и для веб-приложений. Он имитирует ввод с помощью мыши и клавиатуры, что в конечном итоге имитирует поведение конечного пользователя. Тем не менее, я считаю, что это немного шелушащийся; Вызовы метода Button.Click() или DialogBox.Close(), которые отлично работают 9 раз подряд, похоже, терпят неудачу при 10-м вызове, но возвращаются к работе 11-го. Обычно я бы просто списал это на особенность SilkTest (или тестируемого приложения, или ОС, или чего-то еще), но затем я вижу, что есть аналогичные проблемы с другими инструментами автоматизации графического интерфейса, такими как Selenium:

Selenium Click () не работает с Anchor Elements

Selenium Click() не нажимает объект кнопки

Я знаю, что для настольных приложений каждый элемент управления/диалоговое окно графического интерфейса имеет связанный с ним элемент тега (по крайней мере, в графических интерфейсах на базе Windows) и что для веб-страниц существует иерархия объектной модели предметной области элементов страницы. Я предполагаю, что эти инструменты иногда сталкиваются с проблемами при навигации по этим иерархиям и поиске уникальных элементов и элементов управления. Но что здесь происходит? SilkTest — это относительно старый коммерческий программный пакет, в то время как selenium — относительно новый продукт с открытым исходным кодом, который постоянно развивается. Тот факт, что у них обоих могут быть схожие проблемы, вызывает у меня пару вопросов.

Кроме того, относится ли это к другим инструментам тестирования графического интерфейса? Или у меня просто был несколько необычный опыт?

5
задан Community 23 May 2017 в 12:17
поделиться