我使用的是JMet5.0,其中我在JSR223 PostProcessor中编写了一段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:在文件中:内联计算:
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。。。'‘在6号线
有人能帮我指出我可能出错的地方吗?
发布于 2019-03-04 06:55:42
不要在${}脚本中使用JSR223,而是使用vars.get("")获取变量
gamePlayHistoryMap.put(vars.get("playerId"), vars.get("GameplayHistoryId"));GameplayHistoryId似乎是空的,在这种情况下,在JSONExtractor中添加默认值或失败测试
请参阅JMeter关于JSR223脚本的最佳实践:
在这种情况下,确保脚本不使用任何使用
${varName}的变量,因为缓存只需要使用${varName}的第一个值。相反,使用:vars.get("varName")
发布于 2019-03-04 08:08:47
java --这不是真正的Java,而是有与Groovy相比性能更差的Beanshell解释器,您必须坚持Java 5的语法。vars缩写JMeterVariables类读取现有变量值并创建新变量值,即替换以下一行:
gamePlayHistoryMap.put(${playerId},${GameplayHistoryId});
有了这个:
GamePlayHistoryMap.put(‘playerId’),vars.get(‘GameplayHistoryId’);发布于 2019-09-05 08:26:05
您缺少了Map键/值定义。
Map <String, String> gamePlayHistoryMap = new HashMap<>();
gamePlayHistoryMap.put(${playerId}, ${GameplayHistoryId});不确定以下问题的答案:
不要在JSR223脚本中使用${},而是使用vars.get("")
不确定这和这事有什么关系。
https://stackoverflow.com/questions/54977919
复制相似问题