我正在使用Rest-Assured来测试API。 我有以下测试,我想用不同的帖子参数迭代
给出() .parameters(" param1"," abc", "密码"," 1234", " param3"," abc") 。什么时候() .POST("登录&#34) 。然后() .statusCode(400)); }
我该怎么做?
答案 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,也可以使用其数据提供者。
希望它对你有所帮助。