我对 Jmeter 中的 Groovy 脚本有疑问。
我在 Groovy 中创建了一个连接到 Redis 数据库的函数,该函数按预期工作。
后来,当我尝试从“main”获取数据时,它说他不熟悉从Redis获取数据。
我的目的是创建第一个连接到 Redis 的函数,第二个创建 Redis 键的函数,第三个使用 Redis 键获取数据的函数。
在“main”中,我调用了 connect
并且它起作用了,但是第三个不起作用。是因为连接关闭了吗?
最佳答案
看不到您的代码很难猜出哪里出了问题,根据错误消息 jedis
变量未在范围内定义,您正在尝试访问它。您可以尝试全局定义它,例如:
def jedis = null; // make "jedis" variable available to all methods
void connect() {
jedis = new Jedis(vars.get('Redis_IP', vars.get('Redis_Port') as int)
}
void somethingElse () {
if (jedis != null) {
log.info(jedis.ping())
}
}
需要考虑的几点:
- 不要内联 JMeter Variables or Functions进入脚本主体,它使编译缓存功能成为可能,因此代码的整体性能会降低。此外,变量可能会解析为导致脚本解释失败或意外行为的内容。要么使用“参数”部分,要么像我上面的演示一样使用基于代码的等效项
建议尽可能使用 JMeter 内置功能(或插件),因为即使是行为良好的 Groovy 脚本也不会像“普通”Java 代码那样执行得那么快。检查是否Redis Data Set符合您的用例,如果符合 - 只需使用 JMeter 插件管理器安装它并开始使用,而不是与 Groovy 纠缠不清。
参见 JMeter’s Redis Data Set - An Introduction有关插件安装和使用的分步说明的文章
关于groovy - Jmeter连接Redis后报错500,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46515398/