jmeter - JSR223 脚本中的问题,JSR223 PostProcessor : javax. script.ScriptException

标签 jmeter scripting-language jsr223

我正在使用 Jmeter 5.0,其中我在 JSR223 后处理器中编写了一段 Java 代码。代码如下-

import java.util.Map;
import java.util.HashMap;


Map gamePlayHistoryMap = new HashMap();
gamePlayHistoryMap.put(${playerId}, ${GameplayHistoryId});
props.put("GamePlayHistoryMap", gamePlayHistoryMap);

Map payLevelDetailsMap = new HashMap();
payLevelDetailsMap.put(${playerId}, ${PayLevelDetails});
props.put("PayLevelDetailsMap", payLevelDetailsMap);

但是当我执行测试计划时,在控制台中出现以下错误 -

javax.script.ScriptException: In file: inline evaluation of: import java.util.Map; import java.util.HashMap; Map gamePlayHistoryMap = new H . . . '' Encountered "( 107 , )" at line 6, column 23. in inline evaluation of:import java.util.Map; import java.util.HashMap; Map gamePlayHistoryMap = new H . . . '' at line number 6

有人可以帮我指出我可能出错的地方吗?

最佳答案

不要在 JSR223 脚本中使用 ${},而是使用 vars.get("") 来获取变量

gamePlayHistoryMap.put(vars.get("playerId"), vars.get("GameplayHistoryId"));

似乎 GameplayHistoryId 是空的,在这种情况下在 JSONExtractor 中添加默认值或测试失败

请参阅 JMeter 的最佳实践 JSR223脚本:

In this case, ensure the script does not use any variable using ${varName} as caching would take only first value of ${varName}. Instead use : vars.get("varName")

关于jmeter - JSR223 脚本中的问题,JSR223 PostProcessor : javax. script.ScriptException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54977919/

相关文章:

testing - JMeter JSR223 后处理器获取 Cookie

http-headers - jmeter 头管理器删除头

jmeter - 如何在Jmeter中配置从机上运行的线程数?

c++ - 将 Gravity(一种脚本语言)调用转换为 native C 函数调用

linux - 来自给定输入的空文件夹列表

java - JMeter - 在变量/属性中存储/更新 HashMap 对象

eclipse - 在 Eclipse 中调试已编译的 Groovy 脚本

regex - JMeter:正则表达式提取器不提取 token

Jmeter: "No certificate found for alias"

c# - 创建用于创建网页的脚本语言