JMeter: добавить / удалить заголовки тела для параметров в multipart/form-data

У меня возникают трудности с изменением параметров заголовка (Content-Type: text/plain; charset=US-ASCII на Content-Type: application/json) для вызова POST в JMeter - отправка JSON Text в качестве параметра mutlipart/form-data с содержанием приложения / JSON.

Попробовал этот фрагмент кода - sampler.getHeaderManager(). Remove(1)- это не помогает удалять заголовки тела.

--v_23LkJlLQpYLpcElRptQYb74v7-UeP
Content-Disposition: form-data; name="symbol"
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 8bit

{"name":"man_234","Id":"7d12d44c2"}
--v_23LkJlLQpYLpcElRptQYb74v7-UeP--

Можете ли вы оставить мне предложения, чтобы пройти

1 ответ

Решение

Если вы хотите изменить Content-Type: text/plain; charset=US-ASCII бит в теле запроса, вам нужно сделать это по-другому, а именно: в JSR223 PreProcessor используется следующий код:

def oldBody = sampler.getArguments().getArgument(0).getValue()
def newBody = oldBody.replaceAll('Content-Type: text/plain; charset=US-ASCII','Content-Type: application/json')
sampler.getArguments().removeAllArguments()
sampler.addNonEncodedArgument('',newBody,'')

Однако ваш подход может быть не лучшим, так как в случае многокомпонентного запроса каждая запись FormData может иметь свой собственный Content-Type, поэтому вместо изменения запроса вам необходимо создать его другим способом. См. Тестирование выгрузки файлов API REST в статье JMeter для примера создания составного запроса вручную.

Другие вопросы по тегам