Pour mon stage, je dois utiliser TestNG et le sélénium pour tester une application web. Mais j'ai un problème, parfois sélénium ou le navigateur ne fonctionne pas pour une raison quelconque, donc un test de travail est marqué comme "échoué". Pour éviter cela, je peux utiliser l'annotation @Test(invocationCount = 4, successPercentage = 25)
, puis si le test réussit une fois, le test est marqué comme "Réussir", c'est bien mais le problème est que cette solution multiplie le temps de test par 4, ce n'est pas très efficace . Ce que je peux faire pour réduire le temps de test, c'est d'écrire une règle "si le test échoue, relancez ce test (et seulement si le test a échoué), et si cela a fonctionné le deuxième, le troisième ou le quatrième fois, puis marquer ce test comme "réussir" "Donc, je peux éviter ces bogues aléatoires. Mais je n'ai pas trouvé comment écrire cette règle, j'ai vu que nous pouvions ajouter un écouteur, donc nous avons une méthode appelée "onTestFailure
" donc je peux faire quelque chose quand le test a échoué mais je ne sais pas comment exécuter le test. J'ai également trouvé testng-failed.xml où tous les tests échoués sont enregistrés, donc nous pouvons exécuter ce fichier xml pour relancer ces tests, mais cela effacera le rapport de la première exécution précédente, mais je veux juste que le les tests échoués sont marqués comme "réussir" si la deuxième exécution réussit. (J'ai intégré testNG/sélénium à Jenkins, donc j'ai un graphique avec tous les tests, donc cette méthode n'est pas très adaptée, mais cette méthode ne multiplie pas le temps pour tester par 4 et c'est ce que je veux)Comment optimiser les tests de test et de sélénium
Donc, si vous avez la moindre idée de comment faire cela, ce serait très bien.
J'ai testé 3 fois le testng-failed.xml, puis tous les tests fonctionnent, et cela ne prend pas beaucoup de temps. Mais avec Jenkins, quand testng-failed.xml est exécuté la dernière fois, cela modifiera le testng-result.xml, alors maintenant le graphique indique "1 test run, 1 réussir", parce que la dernière exécution, testng a été lancée seulement ce test qui a échoué les 3 premières fois. Cette méthode produira un graphique avec tout le test échoué, mais tous les tests de travail (sauf les tests qui sont exécutés la troisième fois) ne seront pas indiqués, ce n'est pas exactement ce que je veux ... aucune idée? – user1000499