Response response = expect().statusCode(200).given().body(requestBody).contentType("application/json")
.when().post("/admin");
String responseBody = response.getBody().asString();
我在responseBody中有一个json:
{"user_id":39}
我可以使用rest-assured的方法提取到字符串只有这个值= 39吗?
答案 0 :(得分:43)
如果您只对提取“user_id”感兴趣,也可以这样做:
String userId =
given().
contentType("application/json").
body(requestBody).
when().
post("/admin").
then().
statusCode(200).
extract().
path("user_id");
最简单的形式如下:
String userId = get("/person").path("person.userId");
答案 1 :(得分:16)
我找到了答案:)
使用JsonPath或XmlPath(如果您有XML)从响应正文中获取数据。
就我而言:
JsonPath jsonPath = new JsonPath(responseBody);
int user_id = jsonPath.getInt("user_id");
答案 2 :(得分:9)
要将响应序列化为类,请定义目标类
public class Result {
public Long user_id;
}
并将响应映射到它:
Response response = given().body(requestBody).when().post("/admin");
Result result = response.as(Result.class);
您必须在类路径中包含Jackson或Gson,文档说明:http://rest-assured.googlecode.com/svn/tags/2.3.1/apidocs/com/jayway/restassured/response/ResponseBodyExtractionOptions.html#as(java.lang.Class)
答案 3 :(得分:-1)
JsonPath jsonPathEvaluator = response.jsonPath();
return jsonPathEvaluator.get("user_id").toString();