如何使用dataProvider测试POST API

如何使用dataProvider测试POST API,api,post,dataprovider,rest-assured,Api,Post,Dataprovider,Rest Assured,我正在使用Rest-Assured来测试API。 我有下面的测试,我想用不同的post参数对其进行迭代 给定() .参数(“参数1”、“abc”, “密码”、“1234”, “参数3”、“abc”) .when() .post(“登录”) .然后() .状态代码(400)); } 我该怎么做?您可以创建一个方法,从文件中读取输入并将其传递给parameters()方法。(我们使用它从json文件读取输入) 或者,如果您使用的是TestNG,也可以使用它的数据提供程序 希望对您有所帮助。要重新开始

我正在使用Rest-Assured来测试API。 我有下面的测试,我想用不同的post参数对其进行迭代

给定() .参数(“参数1”、“abc”, “密码”、“1234”, “参数3”、“abc”) .when() .post(“登录”) .然后() .状态代码(400)); }


我该怎么做?

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

或者,如果您使用的是TestNG,也可以使用它的数据提供程序


希望对您有所帮助。

要重新开始post参数,请尝试使用键值对形式的映射发送它们。通过这种方式,您可以动态创建自己的JSON主体。之后,在给定的()函数中,将内容类型作为JSON传递,并在主体中传递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);
Map jsonAsMap=newhashmap();
jsonAsMap.put(“参数1”、“abc”);
jsonAsMap.put(“密码”、“1234”);
jsonAsMap.put(“参数3”、“abc”);
RestAssured.given()
.log().all()
.accept(ContentType.JSON)
.contentType(contentType.JSON)
.正文(jsonAsMap)
.when()
.post(“http://DomainName/Login") . //传递帖子URL的链接
.然后()
.contentType(contentType.JSON)
.断言()
.状态代码(400);

由于您将使用JUnit,所以,如果您使用的是TestNG框架,则可以转换为数据提供程序。在您的场景中,上述方法可能是测试某些POST请求状态的更好方法。

您仍在搜索答案吗?