2017-09-18 3 views
1

J'ai plusieurs centaines de tests de sélénium utilisant la grille Selenium sur une machine virtuelle Windows distante de Jenkins faisant office de concentrateur. J'ai utilisé un RetryAnalyzer pour chacun d'eux pendant un certain temps, avec beaucoup de succès. Mais les problèmes récents ont fait des tests pour bloquer indéfiniment - alors j'ai essayé de mettre en œuvre la fonction timeout sur l'annotation @Test (il se présente comme suit: @Test(retryAnalyzer=MyRetryAnalyzer.class, timeOut=600000)Utilisation du délai d'attente @Test de TestNG avec retryAnalyzer

Le problème est que le délai d'attente, dès que le test échoue. pour une raison quelconque la suite complète échoue presque immédiatement avec tous les tests jeter un UnreachableBrowserException. Si je supprime le délai d'attente, il fonctionne correctement.

J'ouvre la WebDriver en utilisant l'annotation @BeforeMethod de testng, si cela aide.

il se sent comme avec le délai d'attente, et après un échec, le délai d'attente est mis à 0 sur chaque test et quand testng essaie de réessayer le test, il ne peut pas avec un timeout de 0 (c'est juste ce que l'on ressent quand même). Edit - une autre chose folle qui se passe est que j'ai essayé d'ajouter un Thread.sleep(5000) après avoir quitté le webdriver pensant que pourrait faire quelque chose, mais il a lancé une exception InterruptedException: sleep interrupted. Je n'ai jamais vu Thread.sleep réellement jeter une erreur avant. Qu'est-ce qui se passe ici?

+0

Pouvez-vous s'il vous plaît nous montrer un code qui est la cause? Sans code, il est difficile de déchiffrer ce qui ne va pas. –

Répondre

0

J'ai aussi le même problème mais en utilisant alwaysRun = true mon problème a été résolu

@Test(priority = 1, retryAnalyzer = Retry.class,alwaysRun = true) 
public void Testcase() throws InterruptedException { 

} 

Vous pouvez essayer cette