Я заинтересован в тестировании пользовательского интерфейса клиентского Java-приложения. Какой самый популярный фреймворк для этого? Каков ваш рекомендуемый фреймворк? Кроме того, почему Selenium этого не делает (или делает)? Мне кажется, что все, что может протестировать веб-приложение, должно иметь возможность тестировать приложение для Windows.
Selenium относится к тестированию веб-интерфейса так же, как ________ к тестированию пользовательского интерфейса приложений Windows
Ответы (11)
Попробуйте фреймворк FEST. Это то, что раньше называлось Abbot, если я не ошибаюсь. Я использую это для автоматизированного тестирования, и это кажется очень простым и удобным. Простые вещи делаются легкими, а сложные вещи там не являются ракетостроением. Я рассматривал UISpecj4j, но он меня не устроил, так как нет технической возможности протестировать Drag'n'Drop, пока это обязательно. Кроме того, довольно сложно разрабатывать тесты, когда вы на самом деле не видите, что происходит (UISpec4J использует фальшивый, невидимый внешний вид).
Единственное, что портит FEST (тоже по замыслу) - он хватает мышку и не дает ничего сделать во время выполнения теста.
Причина, по которой Selenium не может этого сделать, заключается в том, что для тестирования он использует Javascript, работающий в веб-браузере. Он имитирует нажатие кнопок, ввод данных и т. д. через Javascript. Если Javascript отключен, он не будет работать. А поскольку приложения Swing/AWT не имеют Javascript, Selenium также не будет работать с ними.
Если у вас есть Visual Studio 2010, вы также можете использовать новую Visual Studio UI Automation. Тестирование (также известное как закодированный пользовательский интерфейс). Это немного похоже на использование Selenium с картой пользовательского интерфейса.
Ответ таков: Mercury winrunner, который был чрезвычайно популярен в конце 90-х годов и, вероятно, до сих пор широко используется для выигрышных приложений.
Больше не продается как таковой, но, если я не ошибаюсь, теперь доступен как HP QuickTest Professional. См. страницу Википедии на HPQTP.
Теперь он стал HP Unified Functional Testing (UFT)2а>
uispec4j — это альтернатива с открытым исходным кодом. Хотя я еще не пробовал. (В настоящее время я также собираю списки того, что можно попробовать, так что спасибо за вопрос!)
Selenium — это фреймворк на основе JavaScript, поэтому он может работать только на вещах, которые могут выполнять JavaScript. Браузеры делают это изначально.
Насколько мне известно, на самом деле не существует среды тестирования, сравнимой с Selenium на рабочем столе, потому что довольно сложно написать структуру, которая так же естественно подключается к ОС, как Selenium подключается к браузеру. Популярными, но не обязательно лучшими, являются QTP, SilkTest, TestComplete
Если вам нужен инструмент с открытым исходным кодом, взгляните на Marathon. Он позволяет записывать и воспроизводить тесты, создавать отчеты и интегрировать собственный код для тестирования пользовательских компонентов. Я использую его в течение нескольких лет и имею сотни тестов.
Также есть коммерческая версия с большим количеством функций, но я ее не пробовал. Версия с открытым исходным кодом отлично работает для меня.
Попробуйте Sikuli
Sikuli — это технология, разработанная группой MIT UI Design, которая позволяет автоматизировать компьютерные операции с помощью компьютерного зрения. Компьютерное зрение распознает шаблоны на скриншотах графических пользовательских интерфейсов (GUI), а язык сценариев Jython используется для выполнения действий с ними. Язык включает в себя графические элементы и лучше всего редактируется с помощью интегрированной среды разработки, которая поставляется вместе с программным обеспечением. Sikuli можно использовать для автоматизированного тестирования программного обеспечения, как Selenium используется для управления веб-страницей, он может управлять практически любым интерфейсом, который он может распознавать, щелкать или вводить текст — приложения для ПК (Windows, Mac OS X и Linux) и даже приложение для iPhone или Android, работающее в симуляторе или через VNC.
Вы также можете использовать Sikuli Java API
Sikuli API для Java предоставляет Java-программистам функции автоматизации графического пользовательского интерфейса на основе изображений. Он создан и будет активно поддерживаться Sikuli Lab. Эта новая библиотека Java имеет переработанный API и включает в себя несколько новых функций, которых не было в исходном сценарии Sikuli, таких как способность сопоставлять цвета, обрабатывать события и находить геометрические узоры, такие как прямоугольные кнопки. Кроме того, он имеет значительно упрощенный процесс сборки на основе Maven.