从 Java 应用程序和 GUI 模式运行 jmx 时看到差异



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>

最新更新