Jmeter 如何将值从线程组传递到拆卸线程组?

Jmeter 如何将值从线程组传递到拆卸线程组?,jmeter,jmeter-4.0,Jmeter,Jmeter 4.0,我正在尝试实现负载测试脚本,该脚本应根据以下场景进行操作: 将有几个“生产者”线程,通过web服务将文件上传到数据库 很少有“消费者”线程会下载“生产者”上传的文件 目前,我被困在数据库清理上。我可以在发送“producer”请求后使用JSON提取器获取记录ID,并使用此ID模拟文件下载。但是这个ID在拆卸线程组中不可见 你们能告诉我,我如何从上传文件的线程组中传递值来分解线程组吗 目前,我的JMeter 4项目使用具有以下配置的对象: 生产者线程组#1(此线程组上载和下载文件) POST

我正在尝试实现负载测试脚本,该脚本应根据以下场景进行操作:

  • 将有几个“生产者”线程,通过web服务将文件上传到数据库

  • 很少有“消费者”线程会下载“生产者”上传的文件

目前,我被困在数据库清理上。我可以在发送“producer”请求后使用JSON提取器获取记录ID,并使用此ID模拟文件下载。但是这个ID在拆卸线程组中不可见

你们能告诉我,我如何从上传文件的线程组中传递值来分解线程组吗

目前,我的JMeter 4项目使用具有以下配置的对象:

  • 生产者线程组#1(此线程组上载和下载文件)
    • POST HTTP请求(此请求上载文件)
    • JSON提取器
      • 已创建变量的名称=要删除的id
      • JSON路径表达式=$。记录id
      • 匹配号=-1
    • 获取HTTP请求(此请求下载文件)
  • 生产者线程组#2
  • 生产者线程组#3
  • 拆卸螺纹组

  • JMeter变量不能在线程组之间共享(包括拆卸)

    您可以将变量值复制到JMeter属性,并在分解中使用它,例如在内部

    或使用函数将值复制到属性:

    ${__setProperty(id_to_delete, ${id_to_delete},)}
    
    ${__setProperty(foo_${__threadNum},${YOUR_VARIABLE_HERE})}
    
    ${__P(foo_${__threadNum},)}
    
    依照

    属性与变量不同。变量是线程的局部变量;属性对于所有线程都是公共的,需要使用_P或_属性函数来引用

    因此,必须使用JMeter属性在线程组之间传递值,如:

    • 要设置属性,请使用函数
    • 要获取另一个线程组中的属性值,请使用
    • 要设置特定于用户(每个线程)的属性,请使用函数作为后缀的属性前缀
    设置属性的示例:

    ${__setProperty(id_to_delete, ${id_to_delete},)}
    
    ${__setProperty(foo_${__threadNum},${YOUR_VARIABLE_HERE})}
    
    ${__P(foo_${__threadNum},)}
    
    获取属性的示例:

    ${__setProperty(id_to_delete, ${id_to_delete},)}
    
    ${__setProperty(foo_${__threadNum},${YOUR_VARIABLE_HERE})}
    
    ${__P(foo_${__threadNum},)}
    
    演示:

    更多信息: