Автоматизированные тесты для Java Swing GUI

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

Я бы хотел протестировать некоторые графические интерфейсы, которые были написаны с помощью NetBeans Swing GUI Builder, поэтому что-то, что работает, не требуя специального вмешательства код в тесте был бы идеальным.

Ответ 1

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

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

Ответ 2

В настоящее время я использую FEST. Он работает с JUnit и также будет делать скриншоты неудачных тестов.

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

Ответ 3

Вы можете попытаться использовать Cucumber и Swinger для написания функциональных приемочных тестов на простом английском языке для приложений GUI 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!"

Посмотрите на это видеоролик Swinger, чтобы увидеть его в действии.

Ответ 4

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

Ответ 5

Я использую java.awt.Robot. Не приятно, не легко, но работает каждый раз.

Плюсы:

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

Минусы:

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

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

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

Ответ 6

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

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

Ответ 7

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

Ответ 8

UISpec4J довольно прост, нераскрыт и расширяем. Это соответствует моим целям лучше, чем FEST.

Ответ 9

Sikuli: GUI-тестер, использующий скриншоты http://sikuli.org/

Ответ 10

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

Ответ 11

Вы можете попробовать ReTest, который является новым инструментом, который реализует инновационный подход к функциональному тестированию регрессии и объединяет его с ai- основанный на обезьянном тестировании. Он также станет открытым исходным кодом...

Отказ от ответственности: я являюсь одним из основателей компании за ReTest.

Ответ 12

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

Ответ 13

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

Ответ 14

Вы можете sikuli или Automa для проверки вашей части GUI, это хорошо документированные и проверенные инструменты