我想在获取示例之前删除redis
中的数据,因此我将代码放在Beanshell预处理器中。但是代码没有运行,就像Beanshell无法识别Set一样,我的部分代码如下:
import redis.clients.jedis.Jedis;
import java.util.Set;
String new_pattern = "*WITHDRAW_RISK_CONTROL_*";
Set<String> keysSet = null;
System.out.println("here****************");
且Set<String> keySet =null
无效。我导入了Set import java.util.Set;
这是Jmeter的问题吗?或任何原因?
第二个问题是:它可以识别Jedis jar中的类Jedis
。但是它不能支持Jedis JedisPoolConfig,为什么?
答案 0 :(得分:3)
Beanshell不支持Generics。
您应该使用JSR223PreProcessor + Groovy代替:
请注意,如果您的请求是
,则会有Redis数据集答案 1 :(得分:2)
因此,相当过时的Beanshell解释器不支持Java 7功能。如果删除<String>
位,它应该可以工作。
我希望这个问题能够存在于其他地方。要调试Beanshell脚本,您可以尝试以下方法:
debug();
指令。它将触发调试信息输出到STDOUT(您期望here****************
行)在try/catch块中包裹“可疑”代码,如
try {
// your Beanshell
// code here
} catch (Throwable ex) {
log.info("Something went wrong", ex);
}
检查 jmeter.log 文件以获取失败详细信息。
有关JMeter中Beanshell脚本的高级信息,请参阅How to use BeanShell: JMeter's favorite built-in component指南。
答案 2 :(得分:0)
您可以使用“Object keysSet”而不是“Set keysSet”。 它解决了我的问题。