Question

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

J'aimerais tester certaines interfaces graphiques écrites à l'aide du générateur d'interface graphique Swing NetBeans , de sorte que quelque chose qui fonctionne sans nécessiter d'altération spéciale du code testé serait idéal.

Était-ce utile?

La solution

Récemment, je suis tombé sur FEST qui semblait prometteur, à l'exception du développeur annoncé en 2012, ce développement ne se poursuivrait pas .

AssertJ est un fork de FEST qui fonctionne très bien pour moi. Il est activement mis à jour (au moment de la rédaction), supporte 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.

Autres conseils

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

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

Vous pouvez essayer d'utiliser concombre et Swinger pour la rédaction de tests d'acceptation fonctionnels en anglais clair pour les applications d'interface graphique Swing. 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!"

Consultez cette vidéo de démonstration Swinger pour la voir en action.

Nous envisageons jemmy d'automatiser certains tests de l'interface graphique. Cela semble prometteur.

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

Avantages:

  • Vous êtes en contrôle
  • très rapide
  • Construisez votre propre FWK
  • Portable
  • Aucune dépendance externe

Inconvénients:

  • Pas de belle interface graphique pour construire le test
  • Vous devez laisser l'interface graphique pendant que vous testez
  • Construisez 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. Meilleur en classe.

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

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

La seule chose que vous pourriez avoir à faire avec NetBeans GUI Builder est de définir des noms uniques pour vos composants.

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

UISpec4J est assez simple, sans fioritures et extensible. Cela correspond mieux à mes objectifs que FEST.

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

Vous pouvez utiliser Marathon : "L'environnement de test intégré de Marathon, MarathonITE, est une solution Java / Swing & # 8482; multi-plateforme abordable et facile à utiliser. GUI framework d'automatisation de test. Vous pouvez utiliser l’enregistreur de script intégré de MarathonITE pour créer des scripts de test lisibles et lisibles en Python ou en Ruby. Des fonctionnalités avancées telles que le refactoring des méthodes d’extraction, les tests create-datadriven et l’édition d’objectmap vous permettent de créer des suites de tests résilients et maintenables. "

Vous pouvez essayer ReTest , un nouvel outil qui met en œuvre une approche novatrice de la régression fonctionnelle. test et le combine avec le test de singe basé sur AI. Il est également sur le point de devenir open source ...

Clause de non-responsabilité: je suis l’un des fondateurs de la société à l’origine de ReTest.

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

Vous pouvez utiliser sikuli ou Automa pour tester votre partie de l'interface graphique, il s'agit d'outils bien documentés et testés

Je viens de faire quelques balayages rapides. Squish était le plus prometteur. Pas gratuit si

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top