Мой Java pom.xml имеет следующие зависимости:
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_core</artifactId>
<version>5.0</version>
</dependency>
и в моем файле jmx -> утверждение jsr223 у меня есть эта простая функция:
log.info(prev.getResponseDataAsString())
Когда я запускаю из режима GUI, я вижу полный ответ, зарегистрированный в консоли, но когда мое Java-приложение выполняет тот же jmx, я получил:
2018/10/25 20:50:53,576 12050 [INFO ] [Thread Group 1-1] (?:?) –
${__FileToString(${inputFilePath},,)}
Это потому, что мне не хватает некоторых зависимостей в моем pom.xml? Так как он всегда возвращает
$ {__ FileToString ($ {inputFilePath} ,,)}
вместо фактического ответа, который вызывает, я не могу продолжить остаток теста. Остальное все зависит от этого результата. Эта функция взята из данных тела сэмплера HTTP Request !!!!!! Если я приведу фактическое тело там, я смогу запустить jmx ...... Любая идея, как обращаться с этими динамическими данными тела?
ОБНОВЛЕНИЕ 1
Я нашел решение! Вместо этого непосредственно используйте ${__FileToString(${inputFilePath},,)}
в данных тела HTTP Request Sampler, я могу просто создать еще один JSR223 Sampler над HTTP Request Sampler, и в этом сэмплере я могу просто сделать:
import org.apache.commons.io.FileUtils
log.info("--------------------------------------- "+ '${inputFilePath}')
String content = FileUtils.readFileToString(new File('${inputFilePath}'))
vars.put("reqBody", content)
и в данных тела HTTP Request Sampler я сделаю ${reqBody}
. Вот и все!