我正在尝试实施负载测试测试脚本,该脚本应根据场景行事:
会有几个“生产者”线程,它会通过网络服务将文件上传到数据库;
将会有很少的“消费者”线程,它会下载“生产者”上传的文件。
目前,我一直坚持清理数据库。我可以在发送“producer”请求后使用JSON提取器获取记录ID,并使用此ID来模拟文件下载。但是这个ID在Tear Down Thread Group中不可见。
你能告诉我,我怎样才能将Thread上传文件的值传递给Tear Down Thread Group?
目前,我的JMeter 4项目使用具有以下配置的对象:
答案 0 :(得分:1)
属性与变量不同。变量是线程的本地变量;属性对所有线程都是通用的,需要使用__P或__property函数进行引用。
所以你必须去JMeter Properties传递线程组之间的值,比如:
示例设置属性:
${__setProperty(foo_${__threadNum},${YOUR_VARIABLE_HERE})}
获取属性的示例:
${__P(foo_${__threadNum},)}
演示:
更多信息:Knit One Pearl Two: How to Use Variables in Different Thread Groups
答案 1 :(得分:0)
JMeter变量不能在Thread组(包括TearDown)之间共享,
您可以将变量值复制到JMeter属性并在Tear Down中使用它,例如在JSR223 Sampler内部
props.put("id_to_delete", vars.get("id_to_delete"));
或使用__setProperty函数将值复制到属性:
${__setProperty(id_to_delete, ${id_to_delete},)}