java - 从 JSR223 断言读取响应到 Java 代码
问题描述
我想从 Java 代码中读取处理后的值。我的 jmx 中有一个 jsr233 断言,它处理了值({“timestamp”:23893865465,“diff”:34})我想在我的 JMeterEngine 实例中调用 run() 命令后在我的 java 代码中读取它。
我尝试使用 SamplerListner 但不工作。我如何阅读该回复。
JSR 233 断言代码:
mport groovy.json.JsonBuilder
String totalIDs = vars.get("assetIdCount_matchNr");
Integer result = Integer.valueOf(totalIDs);
Date currentDate = new Date();
if (result > 10){
vars.put("SEARCH_SUCCESS_TIMESTAMP",currentDate.getTime().toString());
log.info("ASSET_CREATION_TIMESTAMP:" + props.get("ASSET_CREATION_TIMESTAMP"));
log.info("ASSET_CREATION_TIMESTAMPAfter:" + props.get("ASSET_CREATION_TIMESTAMP"));
log.info("SEARCH_SUCCESS_TIMESTAMP:" + vars.get("SEARCH_SUCCESS_TIMESTAMP"));
def diff = Long.valueOf(vars.get("SEARCH_SUCCESS_TIMESTAMP").toString()) - Long.valueOf(props.get("ASSET_CREATION_TIMESTAMP").toString());
def timestamp = vars.get("SEARCH_SUCCESS_TIMESTAMP");
vars.putObject("Diff", diff);
log.info(String.valueOf(diff));
def json = new JsonBuilder()
def root = json timestamp: "5241234134134", diff: "345"
def file = new File(vars.get("file_location").toString())
file.write('\n'+json.toString());
sleep 10
AssertionResult.setFailure(true);
}
Java 代码
StandardJMeterEngine jmeterSecondary = configJmeter(jmxFileName, argumentObject, jmeter, jMeterAssetECListnerService); //get the jmeter to run by configuring it
jmeterSecondary.run();
// I want to get the timestamp and diff here
jmeterSecondary.reset();
jmeterSecondary.exit();
提前致谢!
解决方案
我能想到的最简单的选择是使用System.setProperty()函数将值写入 JSR223 断言中的 Java 系统属性。
系统属性对于整个 JVM 都是全局的,因此您可以在调用后使用System.getProperty()函数访问它jmeterSecondary.run();
示例用法:
有关不同 JMeter 属性类型和使用它们的方式的更多信息:Apache JMeter 属性定制指南
推荐阅读
- android - TypeError: null is not an object (evalating 'n.default.configureProps') React Native Jitsi Meet
- java - 如何在 Mockito 中模拟 CallableStatement
- python - 如何运行并行线程以在视频流的每一帧上应用函数?
- c - 在 for 循环之后的 Scanf 函数不起作用
- algorithm - 如何从代码中获取流程图或算法?
- c# - 当左 div 元素变长时,如何确保我的左 div 元素不会改变我的右 div 元素的位置?
- c++ - 显示所有匹配值的二进制搜索功能?
- python - 无法使用 bio pythons TreeConstruction 工具模块创建门树
- windows - 使用 ElectronJS 应用程序获取 IntelliJ IDEA/Android Studio 打开的项目文件夹
- java - 运行基于 Java 的开源