quelle est la meilleure approche pour l'écriture de tests d'automatisation pour les applications Web Java
-
09-09-2019 - |
Question
J'ai trouvé que pour tester l'automatisation java meilleure approche serait d'utiliser Cruise Control (java de), JUnit (framework de test java) avec Watij. Toutes les autres suggestions, veuillez. Celui qui a intégré avec succès ces outils et quelles sont les limites pour cette.
concerne
La solution
Nous aimons utiliser WATIR pour les tests fonctionnels des applications Web. Il est un paquet d'automatisation du navigateur pour Ruby. Facile à apprendre et nous n'avons pas courir dans des barrages routiers après avoir écrit de nombreux cas de test.
Autres conseils
Nous essayons généralement de tester l'application sur 3 niveaux:
- Les tests unitaires avec JUnit. A cet effet, nous suivons Dependency Injection boniment et utiliser des objets moquée (basé sur le cadre JMock) en cas de besoin.
- Les tests d'intégration. Ceux-ci sont également basés sur JUnit, mais ne pas utiliser des objets chinés et de tester les différentes couches d'application, l'écriture à la base de données par exemple. Aux fins des données de base, nous suivons la objet de modèle de Mère.
- les tests d'acceptation, à cet effet, nous utilisons Selenum.
Pour l'automatisation des tests et l'intégration continue, nos projets sont construits avec Maven et Hudson. L'une des améliorations que nous examinons en ce moment est d'utiliser Groovy au lieu de Java pour les tests.
Certains des problèmes que nous avions à résoudre: la création des données de base dans la configuration de cas de test (basé sur le modèle de la mère de l'objet), l'organisation des costumes de test puisque tous les tests peuvent prendre beaucoup de temps à courir, traiter les doubles emplois dans le code de test et beaucoup de jongler avec Maven et Selenuim, mais vaut vraiment la peine dans une longue.
L'un de mes collègues est un grand fan de Watir que je devine est similaire à Watij. J'aime Sélénium , et ai réfléchi à jouer avec tellure ces derniers temps.
Dans tous les cas, attacher l'un de ceux avec un moteur d'intégration continue comme CruiseControl ou Hudson (mon préféré) est une excellente façon de gérer les tests fonctionnels pour les applications Web. Et JUnit est grande pour les tests unitaires et même des tests d'intégration.
Limites de test d'applications Web fonctionnel:
Alors que vous pouvez dire à un utilisateur de cliquer sur « le premier élément dans le menu sur le côté gauche », dit l'ordinateur faire la même chose est pas si facile. frameworks de tests d'applications Web ne peuvent pas regarder l'écran et facilement discerner quels sont les éléments sur la page constituent un menu. Ils ont besoin de plus de détails sur ce que l'élément d'interagir avec, et à son tour, nécessite une certaine connaissance de la façon dont la page HTML est construit. Et comme les changements de page, peut ainsi les tests.
Quand chaque petit changement dans une partie de la page rompt les tests dans d'autres parties, sans lien de la page, ces tests sont appelés « fragiles ». Veiller à ce que les tests sont plus stables prend une certaine expérience, comme il le fait dans les tests unitaires réguliers. Par exemple, utiliser ID d'élément ou le nom pour désigner les éléments sur une page, et non pas leur plein XPath (pourrait être long et illisible, ainsi que fragile) ou leur contenu texte (si elle peut changer).