1.what
超时测试即如果单元测试的时间超过某个规定的时间,那该case即被认为执行失败
2.why
可以用于性能测试,以确保方法在合理的时间内返回。
3.how
代码如下:
import org.testng.annotations.Test;
/**
* @Author xx
* @Date 2020/11/22
**/
public class TestTimeOut {
@Test(timeOut = 5000)
public void testTimeOut() throws InterruptedException{
Thread.sleep(4000);
System.out.println("case正常执行");
}
@Test(timeOut = 3000)
public void testTimeOut1() throws InterruptedException{
Thread.sleep(4000);
System.out.println("case执行超时");
}
}
输出结果如下:
case正常执行
org.testng.internal.thread.ThreadTimeoutException: Method org.testng.internal.TestNGMethod.testTimeOut1() didn't finish within the time-out 3000
at java.lang.Throwable.toString(Throwable.java:481)
at java.lang.Throwable.<init>(Throwable.java:311)
at java.lang.Exception.<init>(Exception.java:102)
at java.lang.RuntimeException.<init>(RuntimeException.java:96)
at org.testng.internal.InvokeMethodRunnable$TestNGRuntimeException.<init>(InvokeMethodRunnable.java:71)
at org.testng.internal.InvokeMethodRunnable.runOne(InvokeMethodRunnable.java:49)
at org.testng.internal.InvokeMethodRunnable.run(InvokeMethodRunnable.java:37)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
===============================================
Default Suite
Total tests run: 2, Failures: 1, Skips: 0
===============================================
Process finished with exit code 0