Автоматизированные тесты для графических интерфейсов Java Swing [закрыты]

StackOverflow https://stackoverflow.com/questions/91179

Вопрос

Какие существуют варианты создания автоматических тестов для графических интерфейсов, написанных на Java Swing?

Я бы хотел протестировать некоторые графические интерфейсы, которые были написаны с использованием Конструктор графического интерфейса NetBeans Swing, так что идеально было бы что-то, что работает, не требуя специального изменения тестируемого кода.

Это было полезно?

Решение

Недавно я наткнулся на FEST, который показался мне многообещающим, за исключением того, что разработчик в 2012 году было объявлено, что разработка прекращена.

Утверждение j это форк FEST, который у меня работает очень хорошо.Он активно поддерживается (на момент написания статьи), поддерживает Java 8, содержит утверждения для нескольких популярных библиотек, таких как Guava и Joda Time, и очень хорошо документирован.Это также бесплатно и открыто.

Другие советы

В настоящее время я использую ПРАЗДНИК.Он работает с JUnit, а также будет делать скриншоты неудачных тестов.

У него есть методы поиска компонентов по умолчанию, которые ищут имя тестируемого компонента (которые необходимо задать вручную), но вы также можете сгенерировать тестировщики для данного компонента, передав ему компонент.

Вы можете попробовать использовать Огурец и Свингер для написания функциональных приемочных тестов на простом английском языке для приложений с графическим интерфейсом Swing.Swinger использует встроенную библиотеку Jemmy от Netbeans для управления приложением.

Cucumber позволяет вам писать подобные тесты:

 Scenario: Dialog manipulation
    Given the frame "SwingSet" is visible
      And the frame "SwingSet" is the container
    When I click the menu "File/About"
    Then I should see the dialog "About Swing!"
    Given the dialog "About Swing!" is the container
    When I click the button "OK"
    Then I should not see the dialog "About Swing!"

Взгляните на это Демонстрационное видео Свингера увидеть это в действии.

Мы рассматриваем джемми чтобы автоматизировать часть тестирования графического интерфейса пользователя.Выглядит многообещающе.

Я использую java.awt.Robot.Это нехорошо, это нелегко, но срабатывает каждый раз.

Плюсы:

  • Вы контролируете ситуацию
  • Очень быстро
  • Создайте свой собственный FWK
  • Портативный
  • Отсутствие внешних зависимостей

Минусы:

  • Нет хорошего графического интерфейса для сборки теста
  • Вы должны оставить графический интерфейс в покое во время тестирования
  • Создайте свой собственный FWK
  • Сложно изменить тестовый код и создать свой первый жгут

Теперь, если у вас есть бюджет, я бы выбрал LoadRunner.Лучший в своем классе.

(Раскрытие информации:отношения с компанией, которой принадлежит LR, но я работал с LR до этих отношений)

Я не пользовался им лично, но Поворотный блок выглядит довольно неплохо.Вы можете использовать его с JUnit, и он не основан на "расположении компонентов" (т.е.координаты x и y).

Единственное, что вам, возможно, придется сделать с NetBeans GUI Builder, - это задать уникальные имена для ваших компонентов.

Мы используем QF-Тест и вполне удовлетворены.

UISpec4J это довольно простой, непокрытый и расширяемый файл.Это соответствует моим целям лучше, чем ФЕСТИВАЛЬ.

Сикули:графический интерфейс-тестер, использующий скриншоты http://sikuli.org/

Вы можете использовать Марафон :"Marathonite - интегрированная среда тестирования MarathonITE - это доступная, простая в использовании кроссплатформенная платформа автоматизации тестирования Java / Swing ™ с графическим интерфейсом.Вы можете использовать встроенный в MarathonITE script recorder для создания чистых, читаемых тестовых сценариев на Python или Ruby.Расширенные функции, такие как рефакторинг методом извлечения, создание тестов с приводом от данных и редактирование объектной карты, позволяют создавать поддерживаемые и устойчивые наборы тестов ".

Ты мог бы попробовать Повторное тестирование, который представляет собой новый инструмент, реализующий инновационный подход к функциональному регрессионному тестированию и сочетающий его с обезьяньим тестированием на основе искусственного интеллекта.Он также скоро станет открытым исходным кодом...

Отказ от ответственности:Я являюсь одним из основателей компании, стоящей за повторным тестированием.

Для тех, у кого авантюрный склад ума, есть клейкий https://github.com/robertoaflores/Gooey (очень простой и находящийся в стадии разработки) программный инструмент тестирования для приложений swing.

Вы можете использовать сикули или Автома для тестирования вашей графической части это хорошо документированные и протестированные инструменты

Просто сделал несколько быстрых сканирований. Хлюпать был самым многообещающим.Но не бесплатно

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top