java 如何在RestAssured框架中的2个API调用之间等待

bt1cpqcv  于 2023-09-29  发布在  Java
关注(0)|答案(3)|浏览(99)

场景:我需要在调用2个API之间等待10秒。因为BE需要时间来更新,如果我们立即调用第二个API,它不会给予预期的输出。
我使用Thread.sleep进行等待,它工作正常,但想检查是否有其他方法来实现它。

mrphzbgm

mrphzbgm1#

Awaitilitylib是你想要的,它根据条件等待(类似于Selenium中的Explicit wait)。

用户指南:https://github.com/awaitility/awaitility/wiki/Usage

bzzcjhmw

bzzcjhmw2#

您可以使用ScheduledExecutorService类:

ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();

executorService.schedule(Classname::someTask, delayInSeconds, TimeUnit.SECONDS);

或者TimeUnit.sleep(),它与你已经在使用的Thread.sleep()非常相似:

try {
    TimeUnit.SECONDS.sleep(secondsToSleep);
} catch (InterruptedException ie) {
    Thread.currentThread().interrupt();
}
drnojrws

drnojrws3#

用途:
http://www.awaitility.org/

Awaitility.await().pollDelay(Duration.ofMillis(retryIntervalMillis)).until(() -> true);


Guava(注意可能的SonarQube问题):https://guava.dev/releases/19.0/api/docs/com/google/common/util/concurrent/Uninterruptibles.html

相关问题