Как получить значение ответа в восстановленном состоянии

#rest #testing #automation #rest-assured #web-api-testing

Вопрос:

Я занимаюсь автоматизацией API, используя rest assured. Я хочу получить значение из ответа API и передать его другому классу java,

Это мой тестовый класс,

  @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

Ответ №1:

Ваш метод помечен как @Test, поэтому он не должен ничего возвращать. Если вам нужно использовать personref в своем тесте или другом классе — создайте для этого метод, например.:

     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();
}