Timeout – Testfehler bei Zeitüberschreitung in TestNG

Automatisierte Testsuiten benötigen in der Regel zu viel Zeit, wenn die Elemente nicht ohne Weiteres zur Verfügung stehen. Außerdem müssen wir bei einigen Tests möglicherweise auf das Eintreten eines asynchronen Ereignisses warten, bevor wir mit der Ausführung des Tests fortfahren können.
In diesen Fällen können wir die Testausführungszeit begrenzen, indem wir eine Obergrenze für die Zeit festlegen, nach der die Testmethode als fehlgeschlagen markiert wird. TestNG stellt uns timeOut-Attribute zur Verfügung, um diese Anfragen zu bearbeiten.
Inhaltsübersicht
Zeitüberschreitung in TestNG
Dem Attribut TimeOut innerhalb der @Test-Anmerkungsmethode wird ein Wert zugewiesen, der die Anzahl der Millisekunden angibt. Wenn die Testmethode den Timeout-Wert überschreitet, wird die Testmethode mit einer ThreadTimeoutException als fehlgeschlagen markiert.
@Test(timeOut = 1000)
Code-Schnipsel
In dem folgenden Codeschnipsel haben wir eine Zeitüberschreitung von 1000 ms festgelegt. Innerhalb der Testmethoden können wir sehen, dass die Funktion Thread.sleep() mit einer Dauer von 3 Sekunden eingeführt wird. Wenn der Test ausgeführt wird, können wir in der Ausgabe feststellen, dass der Test mit einer ThreadTimeoutException fehlschlägt, da die Zeitüberschreitung 1 Sekunde beträgt und der Test etwas mehr als 3 Sekunden zur Ausführung benötigt.
@Test(timeOut = 1000)
public void timeOutTest() throws InterruptedException {
Thread.sleep(3000);
//Test logic
}
Abgerufen von
FAILED: timeOutTest
org.testng.internal.thread.ThreadTimeoutException:
Method org.testng.internal.TestNGMethod.timeOutTest()
didn't finish within the time-out 1000