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 для примера создания составного запроса вручную.