Groovy 如何在Jmeter中使用spool

Groovy 如何在Jmeter中使用spool,groovy,redis,jmeter,jedis,Groovy,Redis,Jmeter,Jedis,我想用jmeter加载测试redis。我已经有了一个使用groovy脚本的JSR223采样器 import redis.clients.jedis.Jedis; import java.util.concurrent.ThreadLocalRandom; String varuser = "user:" + ThreadLocalRandom.current().nextInt(1, 500); Jedis jedis = new Jedis(IP, port); String result

我想用jmeter加载测试redis。我已经有了一个使用groovy脚本的JSR223采样器

import redis.clients.jedis.Jedis;
import java.util.concurrent.ThreadLocalRandom;

String varuser = "user:" + ThreadLocalRandom.current().nextInt(1, 500);

Jedis jedis = new Jedis(IP, port);
String result = jedis.hgetAll(varuser);
SampleResult.setResponseData(result.toString().getBytes());
在包含10个“用户”的线程组下。很好。现在我想把“用户”的数量提高到1000。高连接数会对性能产生负面影响,对吗?所以我想获得连接池的优势。据

这就是答案。我的问题是我的jmeter测试计划应该是什么样子?我必须将jmeter元素(哪一个?)放在何处才能创建一个spool?不是在我的线程组下,对吗?以及如何在上面的采样器脚本中使用池中的连接

编辑

因此,使用Dmitris Advice,我创建了两个不同的测试计划。两者都不起作用。也许有人看到了我的错误

第一个计划:

测试计划

|---设置线程组

def pool = new JedisPool(new JedisPoolConfig(), 'localhost')
props.put('pool', pool)
----|---JSR223取样器(1)

|---螺纹组

def pool = new JedisPool(new JedisPoolConfig(), 'localhost')
props.put('pool', pool)
----|---JSR223取样器(2)

|---查看结果树

使用JSR223取样器(1)

和JSR223取样器(2)

我的第二个测试计划看起来像

测试计划

|---螺纹组

----|---测试动作

--------|---JSR223预处理器

----|---JSR223取样器

----|---查看结果树

使用类似于上述JSR223采样器(1)的预处理器和类似于上述JSR223采样器(2)的JSR223采样器

第一个计划附带了响应消息

cannot cast object 'redis.clients.jedis.JedisPool@642715fb' with class
'redis.clients.jedis.JedisPool' to class 'redis.clients.jedis.Jedis'
第二个计划作出回应

no such property: pool for class: Script41082

我做错了什么?

我建议您在某个地方使用(如果您想测量池创建时间)或采样器和组合(如果您不想将池创建请求包括在测试结果中)来创建一个测试

完成后,您可以将此“池”放入JMeter属性中,如:

  • 在安装线程组中

    def pool = new JedisPool(new JedisPoolConfig(), 'localhost')
    props.put('pool', pool)
    
  • <> >在测试中的某个地方

    def pool = props.get('pool')
    

    有关在JMeter测试中使用Groovy脚本的更多信息,请参阅文章。您将从属性中获取
    JedisPool
    ,并尝试将其强制转换为
    Jedis
    ,这是不可能的,您需要从
    JedisPool.getResource()获取
    Jedis


    非常感谢你!像(1)测试计划(2)测试操作(3)JSR223预处理创建池(2)JSR223预处理使用连接(2)一些监听器?我编辑了我的问题。。。如果您能审阅,我将非常高兴:)
    import redis.clients.jedis.JedisPool;
    ....
    JedisPool pool = props.get('pool');
    
    Jedis jedis = pool.getResource();