如何在 RestAssured 中获取响应值

How to get response value in RestAssured

我正在做API自动化使用放心。我想从 API 响应中获取值并传递给另一个 java class,

这是我的测试 class,

 @Test(priority = 1)
    public void UserCreate(){

        Response response = RestAssured.given().when().headers(header.defaultHeaders()).body(builder.UserCreate()).when().post(url);

        JSONObject obj = new JSONObject(response.body().asString());
        JSONObject getresult = obj.getJSONObject("result");
        JSONObject getperson = getresult.getJSONObject("person");
        Object personref = getperson.get("personReference");

        System.out.println(personref);

}

如何将此方法的 void 更改为另一种类型或如何在另一个类型中传递 personref 值 java class

您的方法被注释为@Test,因此它不应该 return 任何东西。 如果您需要在测试中使用 personref 或另一个 class - 为此创建一个方法,例如:

    public Object getPersonRef(){
    Response response = RestAssured.given().when().headers(header.defaultHeaders()).body(builder.UserCreate()).when().post(url);
    JSONObject obj = new JSONObject(response.body().asString());
    JSONObject getresult = obj.getJSONObject("result");
    JSONObject getperson = getresult.getJSONObject("person");
    Object personref = getperson.get("personReference");

   return personref;
}

之后您可以调用方法 getPersonRef() 来获取您的对象。

@Test(priority = 1)
public void TestPersonRef(){
Object personref = getPersonRef();
}