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

Как сделать трансфер данных в post запрос multipartform/data в виде json?

soapui
Теги: #<Tag:0x00007f7b64e88618>

(Tatyana Durova) #1

Добрый день! Помогите пожалуйста с трансфером данных в POST-запрос в виде Json!

Мне нужно сделать трансфер данных В post запрос. Post запрос должен иметь content-type = multipart/form-data. Из одного запроса я получаю нужный мне mediaId и пытаюсь вставить его в другой Post-запрос. Только не знаю как вставить в параметр mediaIds вот такую json конструкцию:

[
{
“mediaId”:“4e2c056931d398831128ad2c6a45ec91”,
“type”:1
}
]

Сейчас у меня вместо этого передается просто “4e2c056931d398831128ad2c6a45ec91”.

Мне надо как то дописать тип, а чему он равен. задаю я сама. Получается мне надо в mediaIds в target-запросе передать еще и второй статичный параметр. Можно ли это сделать через Property Expansion и как? А если просто через request?


(Дмитрий Мирошник) #2

Я бы скриптовым шагом сделал. Технология следующая:
1). Создаём скриптовый шаг.
2). Создаём disabled шаг запроса.
3). В скриптовом шаге делаем все необходимые операции (в данном случае, вставляем json куда нужно), затем в нём же прописываем запуск следующего шага. В отличие от обычного flow выполнения, из-под скрипта запуск disabled шага возможен. Более того, возможен контроль результата его выполнения, т.е., все assertions на disabled шаге сыграют, как надо.


(Михаил Братухин) #3

Поддерживаю. Скрипты на Groovy - решают много проблем. Я даже перестал использовать transfer-шаг, потому что в скрипте было проще передавать параметры. И редактировать его потом проще и сам он нагляднее.

P.S. про запуск disabled-шагов из скрипта не слышал. Но их недавно сам использовал для формирования request’а перед тем как его обернуть в Base64 и передать внутри другого Soap-запроса в message-теге. Думал, что assert’s не сработают. Благодарю, за подсказку. Будет интересно попробовать.