Jmeter 如何将值从线程组传递到拆卸线程组?
我正在尝试实现负载测试脚本,该脚本应根据以下场景进行操作:Jmeter 如何将值从线程组传递到拆卸线程组?,jmeter,jmeter-4.0,Jmeter,Jmeter 4.0,我正在尝试实现负载测试脚本,该脚本应根据以下场景进行操作: 将有几个“生产者”线程,通过web服务将文件上传到数据库 很少有“消费者”线程会下载“生产者”上传的文件 目前,我被困在数据库清理上。我可以在发送“producer”请求后使用JSON提取器获取记录ID,并使用此ID模拟文件下载。但是这个ID在拆卸线程组中不可见 你们能告诉我,我如何从上传文件的线程组中传递值来分解线程组吗 目前,我的JMeter 4项目使用具有以下配置的对象: 生产者线程组#1(此线程组上载和下载文件) POST
- 将有几个“生产者”线程,通过web服务将文件上传到数据库
- 很少有“消费者”线程会下载“生产者”上传的文件
- POST HTTP请求(此请求上载文件)
- JSON提取器
- 已创建变量的名称=要删除的id
- JSON路径表达式=$。记录id
- 匹配号=-1
- 获取HTTP请求(此请求下载文件)
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},)}
演示:
更多信息: