Comment créer un test automatique structuré avec le sélénium (JUnit ou TestNG)? Quelle est votre meilleure pratique pour cela?

StackOverflow https://stackoverflow.com/questions/1326783

Question

Je l'ai écrit des tests qui utilisent le sélénium pour les tests fonctionnels. J'utilise Java. Je voudrais être en mesure de créer une structure entre les tests. Est-il possible de le faire avec JUnit ou TestNG?

voudrais être en mesure de créer une structure de test qui produira un rapport comme celui-ci:

Top test FAIL
- Module1 test PASS
-- Module1Class1 test PASS
-- Module1Class2 test PASS
--- Module1Class3Method1 test PASS
--- Module1Class3Method2 test PASS
- Module2 test FAIL
-- Module2Class1 test FAIL
--- Module2Class1Method1 test PASS
--- Module2Class1Method2 test FAIL
--- Module2Class1Method3 test PASS
Était-ce utile?

La solution 5

Je viens de trouver la solution à cette question, donc je suis en train de lien ici pour que les autres puissent en bénéficier. beust.com Je ne l'ai pas encore essayer, cependant.

Mise à jour: Après l'avoir essayé, je peux générer des résultats comme celui-ci:

Module1.Class3.Method1 PASS
Module1.Class3.Method2 PASS
Module2.Class1.Method1 PASS
Module2.Class1.Method2 FAIL
Module2.Class1.Method3 PASS

Le nom de la méthode est l'échec « Method2 » il est situé dans la classe « Class1 » et il est paquet « Module2 ».

Je l'ai utilisé toutes les possibilités standard de TestNG (beaucoup de celui-ci) + j'ai remplacé l'TestListenerAdapter en utilisant des méthodes ITestResult. GetName () et getTestClass () getName ()

Il est pas vraiment la structure que je cherchais, mais l'analyse syntaxique petit peu peut me dire où le fail était. Et comme en plus je n'ai pas de nommer des méthodes avec la classe et le nom du package en elle.

Autres conseils

Le meilleur modèle que je l'ai vu pour organiser le code derrière des tests de sélénium est le modèle d'objet page:

http: //blog.m. artins.net/acceptance-tests-with-jbehave-selenium-page-objects/

Voici une bibliothèque d'aide Java:

http://code.google.com/p/webdriver/wiki/PageFactory

Vous ne pouvez pas, parce que ce n'est pas le format qui Sélénium interprète des tests. Sélénium prend en charge plusieurs syntaxes linguistiques différentes, qui sont le plus facile des lignes de la table JS et HTML. Vous pouvez utiliser la fonction d'enregistrement de l'IDE Sélénium de Firefox si vous ne voulez pas écrire à la main vos tests pour adapter à une certaine syntaxe du langage.

avez-vous envisagé d'utiliser la télécommande Sélénium? http://seleniumhq.org/projects/remote-control/

Je vous conseille de regarder les rapports XML JUnit ou TestNG. Vous devriez être en mesure de les transformer avec un peu de XSLT pour fournir un nouveau rapport HTML avec votre format requis.

Dans TestNG vous pouvez définir des suites via le fichier de configuration (testng.xml) qui devrait répondre à vos besoins. Vous pouvez structurer d'avoir un groupe de test pour chaque module. Un échec dans un groupe de test rend le test tout comme un échec. Mais je pense que vous pouvez aussi le faire dans JUnit, que je ne suis pas trop familier.

Ce qui est bien dans TestNG est, que vous pouvez définir des dépendances. Ceux-ci imposeront un certain ordre logique pour l'exécution des tests et sauteront tests qui dépendent des tests ayant échoué, au lieu de les laisser échouer aussi. Rend l'analyse beaucoup plus facile et les tests se terminent plus tôt parce que tous les tests qui sont potentiellement vouées à l'échec seront laissés de côté.

Mais comme je l'ai dit plus tôt, je pense que vous pouvez le faire dans JUnit aussi bien. Il est plus une question de goût. Et si vous en décidez autrement, ce n'est pas une grande entreprise à convertir JUnit à TestNG ou inversement.

Je ne suis pas sûr si je terminer suis juste here..but je pense que cela peut vous aider: http://www.jamesnetherton.com / blog / 2007/07/02 / Création-un-Selenium-test suite /

Vous pouvez regrouper vos tests avec elle d'une manière structered très facile.

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