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