Jay*_*Jay 46 java rest json rest-assured
我这样得到回应:
Response response = expect().statusCode(200).given().body(requestBody).contentType("application/json")
.when().post("/admin");
String responseBody = response.getBody().asString();
Run Code Online (Sandbox Code Playgroud)
我在responseBody中有一个json:
{"user_id":39}
Run Code Online (Sandbox Code Playgroud)
我可以使用rest-assured的方法提取到字符串只有这个值= 39?
Joh*_*han 45
如果您只对提取"user_id"感兴趣,也可以这样做:
String userId =
given().
contentType("application/json").
body(requestBody).
when().
post("/admin").
then().
statusCode(200).
extract().
path("user_id");
Run Code Online (Sandbox Code Playgroud)
最简单的形式看起来像这样:
String userId = get("/person").path("person.userId");
Run Code Online (Sandbox Code Playgroud)
mag*_*ter 20
有几种方法.我个人使用以下的:
提取单个值:
String user_Id =
given().
when().
then().
extract().
path("user_id");
Run Code Online (Sandbox Code Playgroud)
当您需要多个响应时,可以使用整个响应:
Response response =
given().
when().
then().
extract().
response();
String userId = response.path("user_id");
Run Code Online (Sandbox Code Playgroud)
使用JsonPath提取一个以获得正确的类型:
long userId =
given().
when().
then().
extract().
jsonPath().getLong("user_id");
Run Code Online (Sandbox Code Playgroud)
当你想要匹配值和类型时,最后一个非常有用
assertThat(
when().
then().
extract().
jsonPath().getLong("user_id"), equalTo(USER_ID)
);
Run Code Online (Sandbox Code Playgroud)
有保证的文档非常具有描述性和完整性.有很多方法可以实现您的要求:https://github.com/jayway/rest-assured/wiki/Usage
Jay*_*Jay 19
我找到了答案:)
使用JsonPath或XmlPath(如果您有XML)从响应正文中获取数据.
就我而言:
JsonPath jsonPath = new JsonPath(responseBody);
int user_id = jsonPath.getInt("user_id");
Run Code Online (Sandbox Code Playgroud)
要将响应序列化到类中,请定义目标类
public class Result {
public Long user_id;
}
Run Code Online (Sandbox Code Playgroud)
并映射对它的响应:
Response response = given().body(requestBody).when().post("/admin");
Result result = response.as(Result.class);
Run Code Online (Sandbox Code Playgroud)
您必须在类路径中包含Jackson或Gson,如文档所述:http://rest-assured.googlecode.com/svn/tags/2.3.1/apidocs/com/jayway/restassured/response/ResponseBodyExtractionOptions.html#as( java.lang.Class中)
| 归档时间: |
|
| 查看次数: |
86133 次 |
| 最近记录: |