JMETER: отправка файлов с помощью запроса веб-сервиса
Мне нужно отправить файлы с запросом веб-службы. Но я не знаю, как указать файл в запросе WebService(SOAP).
Как я могу это сделать? Или можно использовать HTTP-запрос?
Заранее спасибо...
1 ответ
JMeter предоставляет как минимум 2 варианта того, как вы можете передать файл в сэмплер, функцию или что-то еще.
Вариант 1: функция __FileToString(). Просто поместите его в текстовое поле "SOAP/XML-RPC Data" следующим образом:
${__FileToString(/path/to/your/file.xml,,)}
Вариант 2. Другой, более гибкий вариант - это чтение файла с помощью расширения сценариев (т. Е. Если кодировка XML-файла отличается от текущей кодировки системы и становится поврежденной).
Добавьте Beanshell Pre Processor в качестве дочернего элемента вашего запроса SOAP / XML-RPC с помощью следующего кода:
import org.apache.commons.io.FileUtils;
import org.apache.commons.codec.binary.Base64;
String file = FileUtils.readFileToString(new File("/path/to/your/file.xml"),"UTF-8");
vars.put("file",new String(Base64.encodeBase64(file.getBytes("UTF-8"))));
Он будет читать содержимое файла /path/to/your/file.xml с использованием кодировки UTF-8 и сохранять результат в "файловой" переменной JMeter.
Просто положи ${file}
или же ${__V(file)}
в текстовую область "SOAP/XML-RPC Data". Вот и все.
См. Как использовать руководство BeanShell для более подробной информации о расширении JMeter с помощью сценариев.
Вы можете использовать прослушиватель View Results Tree для получения полной информации по запросу / ответу.