TestNG - Timeout-Test
In diesem Tutorial zeigen wir Ihnen, wie Sie dentimeout
-Test in TestNG durchführen. Das "Timeout" bedeutet, wenn ein Komponententest länger als eine festgelegte Anzahl von Millisekunden dauert, wird er von TestNG abgebrochen und als fehlgeschlagen vermarktet.
Diese "Zeitüberschreitung" kann auch für Leistungstests verwendet werden, um sicherzustellen, dass die Methode innerhalb einer angemessenen Zeit zurückgegeben wird.
TestTimeout.java
package com.example.testng.examples.timeout; import org.testng.annotations.Test; public class TestTimeout { @Test(timeOut = 5000) // time in mulliseconds public void testThisShouldPass() throws InterruptedException { Thread.sleep(4000); } @Test(timeOut = 1000) public void testThisShouldFail() { while (true); } }
Ausgabe
[TestNG] Running: PASSED: testThisShouldPass FAILED: testThisShouldFail org.testng.internal.thread.ThreadTimeoutException: Method org.testng.internal.TestNGMethod.testThisShouldFail() didn't finish within the time-out 1000 at com.example.testng.examples.timeout.TestTimeout.testThisShouldFail(TestTimeout.java:14) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84) at org.testng.internal.InvokeMethodRunnable.runOne(InvokeMethodRunnable.java:46) at org.testng.internal.InvokeMethodRunnable.run(InvokeMethodRunnable.java:37) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) =============================================== Default test Tests run: 2, Failures: 1, Skips: 0 ===============================================