Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

rest assured. Запись - Ключ значение в параметр запроса

rest-assured
Теги: #<Tag:0x00007f7b65226e28>

(Женя Воронкин) #1

Всем привет. Имеется запрос с набором обязательных параметров
пример

'{"key1": value1, "key2": value2, "key3": {"key3_1": "value3"}, "key4": "value4"}'

final ClassTest classTest = given()

.param(“key1”, “value1”)
.param(“key2”, “value2”)
.param(“key3”, “{“key3_1”: “value3”}”)

.when().put(EndPoint.URL_API)
.then().log().all()
.extract().response().as(ClassTest.class);

Если записывать. см. выше, сервер возвращает - “error”: “Property “key3” must be of object type”

Собственно вопрос в том, как записать формат такого см. key3 - ключ-значение в метод param (params; queryParam и пр.) для последующий обработки?

через curl без проблем целый запрос проходит корректно.


(Evgenii) #2
        Map<String, String> key3Map = new HashMap<>();
        key3Map.put("key3_1", "value3");

        Map<String, Object> jsonAsMap = new HashMap<>();
        jsonAsMap.put("key1", key_value_1);
        jsonAsMap.put("key2", key_value_2);
        jsonAsMap.put("key3", key3Map);
        jsonAsMap.put("key4", key_value_4);
given()
                .contentType(ContentType.JSON)
                .body(jsonAsMap)

(Eugene Moskalenko) #3

Точно так-же делаю :slight_smile:


(Женя Воронкин) #4

Спасибо Вам БОЛЬШУЩИЕ :slight_smile::wink: и 100 к карме))


(Sergey Pirogov) #5

А можно сделать еше круче и читабельнее создать объект c нужными полями и передавать его