groovy - Jmeter连接Redis后报错500

标签 groovy redis jmeter

我对 Jmeter 中的 Groovy 脚本有疑问。

我在 Groovy 中创建了一个连接到 Redis 数据库的函数,该函数按预期工作。

后来,当我尝试从“main”获取数据时,它说他不熟悉从Redis获取数据。

我的目的是创建第一个连接到 Redis 的函数,第二个创建 Redis 键的函数,第三个使用 Redis 键获取数据的函数。

在“main”中,我调用了 connect 并且它起作用了,但是第三个不起作用。是因为连接关闭了吗?

enter image description here

enter image description here

enter image description here

最佳答案

看不到您的代码很难猜出哪里出了问题,根据错误消息 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 Redis Data Set

参见 JMeter’s Redis Data Set - An Introduction有关插件安装和使用的分步说明的文章

关于groovy - Jmeter连接Redis后报错500,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46515398/

相关文章:

java - hibernate-redis 是否支持由不同的 hibernate 实例共享的二级缓存

php - 使用 predis 包将缓存超时设置为 Codeigniter 中的一个键

multithreading - JMeter:如何计算每台机器的最大线程数

random - 在JMeter中生成 'Random number'变量

Groovy GString 和数字格式

java - 使用 cucumber-java 和 junit 时如何获取 cucumber RuntimeOptions 的引用?

php - 无法实时从redis读取

jmeter - 如何在 jmeter 中设置适当的加速时间?

grails - 从 Controller 调用服务方法时,空指针异常

java - 如何将 groovy dsl 脚本从一个 groovy 文件包含到另一个文件