连接到Jmeter中的Redis后出错500

时间:2017-10-01 18:14:44

标签: groovy redis jmeter

我在Jmeter中有一个关于Groovy脚本的问题。

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

之后,当我从“主要”我尝试获取数据时,它说他不熟悉Redis的获取。

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

在“主要”中我打电话给columns = int(input("How many columns? ")) while columns <= 0: print ("Invalid entry, try again!") columns = int(input("How many columns? ")) x = 1 while x < columns: y = 0 while y < x: print(" ", end="") y += 1 print("*") x += 1 x = columns while x > 0: y = 0 while y < x: print(" ", end="") y += 1 print("*") x -= 1 并且它有效,但第三个不起作用。是因为连接已关闭吗?

enter image description here

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

没有看到你的代码很难猜到什么是错的,根据错误消息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文章