web-dev-qa-db-fra.com

Tests automatisés pour Java Swing GUIs

Quelles sont les options pour construire des tests automatisés pour les interfaces graphiques écrites en Java Swing?

Je voudrais tester certaines interfaces graphiques qui ont été écrites à l'aide de NetBeans Swing GUI Builder , donc quelque chose qui fonctionne sans nécessiter une falsification spéciale du code testé serait idéal.

65
pauldoo

Récemment, je suis tombé sur FEST qui semblait prometteur, sauf que le développeur a annoncé en 2012 que le développement ne continuerait pas .

AssertJ est un fork de FEST qui fonctionne très bien pour moi. Il est activement maintenu (au moment de la rédaction), prend en charge Java 8, a des assertions pour quelques bibliothèques populaires telles que Guava et Joda Time, et est très bien documenté. Il est également gratuit et ouvert .

31
Jwest08

J'utilise actuellement FEST . Il fonctionne avec JUnit et prendra également des captures d'écran des tests ayant échoué.

Il a des méthodes de recherche de composants par défaut qui recherchent le nom du composant testé (qui doit être défini manuellement), mais vous pouvez également générer les testeurs pour un composant donné en lui passant le composant.

26
deterb

Vous pouvez essayer d'utiliser Concombre et Swinger pour écrire des tests d'acceptation fonctionnelle en anglais simple pour les applications Swing GUI. Swinger utilise la bibliothèque Jemmy de Netbeans sous le capot pour piloter l'application.

Le concombre vous permet d'écrire des tests comme celui-ci:

 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!"

Jetez un oeil à ce démo vidéo Swinger pour le voir en action.

14
Dema

Nous envisageons jemmy pour automatiser certains tests GUI. Cela semble prometteur.

9
Jayan

J'utilise Java.awt.Robot. N'est pas agréable, n'est pas facile mais fonctionne à chaque fois.

Avantages:

  • Vous avez le contrôle
  • Très vite
  • Créez votre propre FWK
  • Portable
  • Pas de dépendances externes

Les inconvénients:

  • Pas de belle interface graphique pour construire le test
  • Vous devez laisser l'interface graphique seule pendant que vous testez
  • Créez votre propre FWK
  • Difficile de changer le code de test et de créer votre premier harnais

Maintenant, si vous avez le budget, je choisirais LoadRunner. Le meilleur de sa catégorie.

(Divulgation: relation avec l'entreprise qui possède LR, mais j'ai travaillé avec LR avant la relation)

8
Javaxpert

Je ne l'ai pas utilisé personnellement, mais SwingUnit semble assez bon. Vous pouvez l'utiliser avec jUnit, et il n'est pas basé sur "l'emplacement des composants" (c'est-à-dire les coordonnées x et y).

La seule chose que vous pourriez avoir à faire avec le générateur d'interface graphique NetBeans est de définir des noms uniques pour vos composants.

6
user7094

Nous utilisons QF-Test et sommes très satisfaits.

6
ahu

ISpec4J est assez simple, non gonflé et extensible. Cela correspond mieux à mes objectifs que FEST.

6
Domchi

Vous pouvez utiliser Marathon : "L'environnement de test intégré Marathon, MarathonITE, est un environnement abordable, facile à utiliser et plate-forme Java/Swing ™ Framework d'automatisation des tests GUI. Vous pouvez utiliser l'enregistreur de scripts intégré de MarathonITE pour créer des scripts de test propres et lisibles soit en Python ou Ruby. Des fonctionnalités avancées telles que le refactoring de méthode d'extraction, -datadriven-tests et l'édition de la carte d'objet vous permettent de créer des suites de tests maintenables et résilients. "

4
Hashan

Vous pouvez essayer ReTest , qui est un nouvel outil qui implémente une approche innovante des tests de régression fonctionnelle et les combine avec des tests de singe basés sur l'IA. Il est sur le point de devenir open source également ...

Avertissement: je suis l'un des fondateurs de l'entreprise derrière ReTest.

3
roesslerj

Sikuli: un testeur graphique utilisant des captures d'écran http://sikuli.org/

3
Viktor Mellgren

Pour ceux qui ont un esprit aventureux, il y a gluant https://github.com/robertoaflores/Gooey un outil de test programmatique (très basique et en cours de développement) pour les applications swing.

2
Roberto Flores

Je viens de faire quelques analyses rapides. Squish était le plus prometteur. Pas gratuit cependant

1
amutter

Vous pouvez utiliser sikuli ou Automa pour tester votre partie GUI, ce sont des outils bien documentés et testés

1