如何使用dataProvider测试具有Rest-Assured

时间:2016-01-28 19:57:26

标签: api post dataprovider rest-assured

我正在使用Rest-Assured来测试API。 我有以下测试,我想用不同的帖子参数迭代

给出()                 .parameters(" param1"," abc",                         "密码"," 1234",                         " param3"," abc")                 。什么时候()                     .POST("登录&#34)                 。然后()                     .statusCode(400));     }

我该怎么做?

2 个答案:

答案 0 :(得分:1)

要重新开始使用post参数,请尝试使用键值对形式的MAP发送它们。这样你就可以动态创建自己的JSON Body。之后在given()函数中,将Content类型作为JSON传递并在Body中传递jsonAsMap。

    Map<Object, Object>  jsonAsMap = new HashMap<Object, Object>();

    jsonAsMap.put("param1", "abc");
    jsonAsMap.put("password", "1234");
    jsonAsMap.put("param3","abc");

        RestAssured.given()
            .log().all()
            .accept(ContentType.JSON)
            .contentType(ContentType.JSON)
            .body(jsonAsMap)

        .when()
            .post("http://DomainName/Login") . //Pass the link of the POST URL
        .then()
            .contentType(ContentType.JSON)
            .assertThat()
                .statusCode(400);

因为您将使用JUnit,所以这将起作用。如果您使用的是TestNG框架,则可以转移到Data Provider。在您的场景中,上面提到的可能是测试某个POST请求状态的更好方法。

答案 1 :(得分:0)

您可以创建一个方法来读取文件中的输入并将其传递给parameters()方法。 (我们用它来读取json文件中的输入)

或者,如果您使用的是TestNG,也可以使用其数据提供者。

希望它对你有所帮助。