[JAVA] [Note] Modèle de conception pris en compte lors de l'automatisation du test de l'interface graphique avec Selenium

Le cycle de lancement du produit était d'environ un an, Depuis que nous avons remplacé le système de publication de correctifs de temps en temps, nous avons augmenté le nombre de tests.

Le flottement de l'interface graphique n'est que douloureux, donc J'ai pensé à la meilleure conception et au meilleur fonctionnement pour l'automatisation à l'avenir.

Puisqu'il est au stade du prototype, cela peut changer, mais c'est la configuration jusqu'à présent.

Design pattern

L'interface graphique est susceptible de changer et des tests sont effectués régulièrement. J'ai choisi le modèle de conception d'objet de page parce que je veux le rendre facile à maintenir.

J'ai été autorisé à parler de ce domaine. https://www.seleniumhq.org/docs/06_test_design_considerations.jsp#page-object-design-pattern http://ninoseki.hatenablog.com/entry/2013/01/09/212424 http://www.assertselenium.com/automation-design-practices/page-object-pattern/

Qu'est-ce que le modèle de conception d'objet de page? Un mécanisme pour créer des tests résistants aux modifications en séparant la classe de chaque page à tester et la classe de cas de test.

Pour plus de détails, le lien ci-dessus vous sera utile, Pour spécifier des éléments d'écran avec la méthode Selenium, créez une classe 〇〇Page. 〇 〇 La classe de page est essentiellement créée pour chaque écran Test en utilisant la méthode XX Page dans la classe XX Test.

En créant une classe qui spécifie des éléments pour chaque page Il sera utilisé dans divers cas de test. Je pense que c'est le point.

-void si le sod ne renvoie pas de chaîne etc. sans transition de page --Retourne l'objet PageObject de destination si la méthode implique une transition de page

Jugement du succès / échec du test

Vous pouvez également juger du résultat du test en vérifiant s'il y a un élément spécifique sur l'écran affiché, etc. Je ne sais pas avant que l'écran ne s'effondre. Je veux juger si l'interface graphique est étrange à l'œil humain, donc J'ai décidé de prendre une capture d'écran des résultats du test et de voir les résultats avec l'œil humain.

Basculer entre plusieurs navigateurs

En modifiant le pilote utilisé dans Selenium, vous pouvez exécuter des tests à l'aide de plusieurs navigateurs avec le même code de test. Créez un objet pilote pour le navigateur que vous souhaitez spécifier avec une description telle que DRIVER = new ChromeDriver (); // objet Chrome.

Je veux changer de flexibilité ici, donc Autorisez le navigateur à être spécifié dans le fichier de paramètres.

Les autres éléments susceptibles de changer, tels que les URL et les répertoires de stockage de captures d'écran, doivent être découpés dans le fichier de paramètres et lus.

Spécification des éléments

Il est difficile de définir chacun d'eux, mais il semble qu'il n'y ait pas d'autre choix que de le spécifier régulièrement. J'espère qu'il y a un autre moyen.

Si possible, créez des attributs à tester avec des données personnalisées pendant le développement. Il semble être résistant aux changements d'interface graphique.

référence

Changement par navigateur http://www.seleniumeasy.com/selenium-tutorials/simple-page-object-model-framework-example

Spécification des attributs de données personnalisés https://qiita.com/okitan/items/eb8f8e253d0811777215

Recommended Posts

[Note] Modèle de conception pris en compte lors de l'automatisation du test de l'interface graphique avec Selenium
[Modèle de conception] Logique commune avec la méthode de modèle