Как отправить значения из RestAssured в JSon и получить от него значение?

{"service_request":  {"service_type":"Registration","partner":"1010101","validity":1,"validity_unit":"Year","quantity":1,"center":"1020301","template":"2020301"}}

У меня есть значения JSON, как указано выше, полученные из Request Payload, когда я отправляю данные с веб-страницы. Я хочу опубликовать эти данные из RESTAssured в java и получить возвращаемое значение? Как я могу это сделать?


person Lokesh Sanapalli    schedule 12.11.2015    source источник


Ответы (1)


Я бы рекомендовал проверить https://github.com/jayway/rest-assured/wiki/Usage#specifying-request-data

Я предполагаю, что вы пытаетесь выполнить POST, используя Rest-Assured. Самый простой и легкий способ - это .. Сохраните полезную нагрузку как String. Если у вас есть полезная нагрузка как JSONObject, используйте toJSONString (), чтобы преобразовать ее в String.

String payload = "yourpayload";
String responseBody = given().contentType(ContentType.JSON).body(payload).
when().post(url).then().assertThat().statusCode(200).and()
extract().response().asString();

Выше кода разместите свои полезные данные по указанному URL-адресу, проверьте код ответа и преобразуйте тело ответа в строку. Вы можете сделать утверждение без преобразования в String, а также как

given().contentType(ContentType.JSON).body(payload).
when().post(url).then().assertThat().statusCode(200).
and().assertThat().body("service_request.partner", equalTo("1010101"));
person Anoop Philip    schedule 12.11.2015
comment
Во-первых, я ничего не знаю о JSON ... Я просто получаю данные запроса от firefox - ›inspect element -› Network - ›вкладка params. Я пробовал, как вы сказали, вот так. String responseBody = RestAssured.given (). ContentType (ContentType.JSON) .body (payload) .when (). Post (PortalURLS.PORTAL_SERVICE_TOKEN_URL) .then (). AssertThat (). StatusCode (200) .and (). Extract () .response (). toString (); Но это не работает .... Предположим, что я уже вошел на портал через RestAssured в методе ранее ... - person Lokesh Sanapalli; 13.11.2015
comment
FAILED: PortalLogin java.lang.AssertionError: 1 ожидание не выполнено. Ожидаемый код статуса ‹200› не соответствует фактическому коду статуса ‹302›. Я получаю ошибку, как указано выше .... На самом деле, когда я отлаживаю в firefox, код ответа 200 ... Но я не знаю, как 302 появляется в RestAssured. - person Lokesh Sanapalli; 13.11.2015
comment
Можете ли вы убедиться, что используете правильный URL. 302 указывает, что запрошенный ресурс временно находится под другим URI. Поскольку перенаправление может быть изменено время от времени, клиент ДОЛЖЕН продолжать использовать Request-URI для будущих запросов. Этот ответ кэшируется только в том случае, если он указан полем заголовка Cache-Control или Expires. - person Anoop Philip; 13.11.2015