使用RestAssured在Java中进行多次Rest调用

时间:2015-09-16 19:25:42

标签: java rest-assured

当您使用RestAssured发出休息请求时,它似乎在等待响应。我需要在RestAssured中发出POST请求,然后在等待响应时,我需要发出GET请求。我正在使用Java和RestAssured。我也试过创建第二个线程,但它仍然没有工作。这是出于测试目的。

这是等待的地方:

given().auth().preemptive().basic(userCreds[0], userCreds[1]).contentType("application/json;").and().post(baseURL + resourcePath + this.act.getId() + "/run");

我希望在前一个请求运行时运行(异步请求?):

given().auth().preemptive().basic(userCreds[0], userCreds[1]).when().get(baseURL + resourcePath + this.connect.getId() + "/outgoing/" + fileId);

我还读到RestAssured支持异步请求,但是我没有成功地让它工作。我的项目是少年的。我只是一个低级QA人,所以任何帮助都会非常感激。

4 个答案:

答案 0 :(得分:0)

RestAssured仅支持并行运行,而不支持asyncron运行。

答案 1 :(得分:0)

如果我正确理解您的问题,您应该能够使用线程执行您计划执行的操作。

   ExecutorService executorService = Executors.newFixedThreadPool(<number of threads>);

    // send 1st 7 requests here
    for (int i = 0; i < 7; i++){
        executorService.execute(new Runnable() {
            @Override
            public void run(){
                try {
                    given().
                        contentType(<>).
                        header(<headers>).
                        body(body).
                    when().
                        post(<URL>);
                } catch (Exception e) {
                    LOGGER.error(e);
                }
            }
        });
    }

    // Wait for all the threads to gracefully shutdown
    try {
        executorService.awaitTermination(<Your timeout>);
    } catch (InterruptedException ie) {
        LOGGER.error("Shutdown interrupted. Will try to shutdown again.", ie);
        executorService.shutdownNow();
    }

虽然这不是异步的,但这可以做你打算做的事情。

答案 2 :(得分:0)

正如您提到的,您正在使用TestMG,因此请在单独的测试方法中编写两个请求,然后使用XML并行运行测试。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TestSuite" thread-count="3" parallel="methods" >
<test name="testGuru">
<classes>
<class name="Test_class_name">
</class>
</classes>
</test>
</suite>

答案 3 :(得分:0)

Completable Future可用于使呼叫异步。

enter image description here

enter image description here