Question

Nous sommes en train de mettre en place une campagne de test Selenium sur une grande application Web. La première chose que nous avons faite a été de construire un framework qui initialise les données SQL dans la base de données avant le test, lance le test, archive les résultats puis efface les données.

Nous avons intégré cela dans un processus Maven 2, exécuté tous les jours par TeamCity sur une base de données dédiée.

Nous avons mis en place plusieurs tests Selenium maintenant, mais ils ne sont pas utilisés comme prévu.

Les tests sont parfois interrompus pour d'autres raisons que les régressions (les données peuvent avoir été modifiées, les procédures stockées peuvent avoir été recompilées, etc.).

Je voudrais savoir si les tests d’interface utilisateur ont rencontré un grand succès et, le cas échéant, leurs raisons. Les erreurs communes peuvent également m'intéresser.

Était-ce utile?

La solution

La testabilité aide beaucoup. La plus grande victoire pour la testabilité dans les applications Web réside dans le fait que tous les éléments HTML avec lesquels vous devez interagir sur la page possèdent des attributs uniques et cohérents . Si les attributs que vous utilisez pour identifier les éléments HTML (Selenium utilise xpath) ne sont pas cohérents / fiables lors de la construction ou de la session à la session, vos scripts de test échoueront. De plus, ces attributs doivent être uniques pour que l'outil d'automatisation (dans ce cas Selenium) puisse rechercher l'objet sur la page Web.

Autres conseils

Si vous voulez des tests unitaires fiables, vous devez avoir la même entrée. L'état de départ de la base de données est l'entrée . Donc, vous devez avoir la même base de données de départ à chaque fois. Bien sûr, si vous souhaitez effectuer des tests avec différentes entrées , vous devez créer un autre test unitaire (les résultats ne seront évidemment pas les mêmes).

Lorsque je fais ce genre de choses, j'utilise toujours la même base de données comme point de départ. Bien sûr, certains tests peuvent échouer sans que la base de données ne soit modifiée, ce qui signifie que d'autres tests ultérieurs peuvent également échouer même s'ils ne le feraient pas autrement. Si votre outil de test unitaire le permet, vous devez définir des dépendances entre les tests pour vous assurer que ces tests ne seront pas exécutés du tout lorsque le test "parent" échoue.

J'utilise http-unit, qui présente l'avantage supplémentaire de fonctionner avant l'ajout de style à la page.

http://httpunit.sourceforge.net/ Vous pouvez attacher les tests à exécuter dans la phase de test d'intégration pour maven2.

À partir du site

  

Écrit en Java, HttpUnit émule le   parties pertinentes du comportement du navigateur,   y compris la soumission de formulaire, JavaScript,   authentification HTTP de base, cookies et   redirection automatique des pages et permet   Code de test Java à examiner renvoyé   pages soit sous forme de texte, un DOM XML, ou   conteneurs de formulaires, tables et   liens.

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