My 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 请求采样器的正文数据!!!!!如果我在那里提供实际的身体,那么我就可以运行 jmx......知道如何处理这些动态身体数据吗?
更新 1我找到了解决方案!相反,直接使用 HTTP 请求采样器正文数据中的${__FileToString(${inputFilePath},,)}
,我可以在 HTTP 请求采样器上方再创建一个 JSR223 采样器,在这个采样器中,我可以做:
import org.apache.commons.io.FileUtils
log.info("--------------------------------------- "+ '${inputFilePath}')
String content = FileUtils.readFileToString(new File('${inputFilePath}'))
vars.put("reqBody", content)
在 HTTP 请求采样器的正文数据中,我将${reqBody}
.就是这样!
你缺少依赖关系:
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_functions</artifactId>
<version>5.0</version>
</dependency>