Timeout – échec du test en cas de timeout dans TestNG

Les suites de tests automatisés ont tendance à prendre trop de temps si les éléments ne sont pas facilement accessibles pour interagir. De plus, pour certains tests, il se peut que nous devions attendre qu’un événement asynchrone se produise avant de pouvoir poursuivre l’exécution du test.
Dans ce cas, nous pouvons vouloir limiter la durée d’exécution du test en spécifiant une limite supérieure à la limite de temps au-delà de laquelle la méthode de test est marquée comme ayant échoué. TestNG nous fournit des attributs timeOut pour gérer ces demandes.
Table des matières
TimeOut dans TestNG
L’attribut TimeOut de la méthode d’annotation @Test se voit attribuer une valeur spécifiant le nombre de millisecondes. Si la méthode de test dépasse la valeur du délai d’attente, elle est signalée comme ayant échoué par une exception ThreadTimeout.
@Test(timeOut = 1000)
Extrait de code
Dans l’extrait de code suivant, nous avons spécifié un délai d’attente de 1000 ms. Dans les méthodes de test, nous pouvons voir que la fonction Thread.sleep() est introduite avec une durée de 3 secondes. Lorsque le test est exécuté, nous pouvons remarquer dans la sortie que le test échoue avec une exception ThreadTimeout parce que le délai d’attente est de 1 seconde et que le test prend un peu plus de 3 secondes pour s’exécuter.
@Test(timeOut = 1000)
public void timeOutTest() throws InterruptedException {
Thread.sleep(3000);
//Test logic
}
Récupéré de
FAILED: timeOutTest
org.testng.internal.thread.ThreadTimeoutException:
Method org.testng.internal.TestNGMethod.timeOutTest()
didn't finish within the time-out 1000