如何将变量从bean shell示例传递到其他请求

时间:2019-01-22 12:09:48

标签: jmeter

import java.util.Random;        
Random r = new Random();
int low = 1;
int high = 4;
int randomvalue = r.nextInt(high-low) + low;
log.info("-------------------------");
String Value="10000"+randomvalue+"A";
log.info(Value);

如何将Value变量中存在的数据传递给JMeter中的其他请求?

2 个答案:

答案 0 :(得分:0)

将Beanshell更改为JSR223 Sampler并向JMeter变量添加值

 vars.put("Value", Value);

您以后可以将其命名为${Value},也可以在JSR223 Sampler内部将其命名为vars.get("Value")

或使用JMeter的属性保存(影响所有线程)

 props.put("Value", Value);

您以后可以将其命名为${__P(Value)},也可以在JSR223 Sampler内部将其命名为props.get("Value")

答案 1 :(得分:0)

  1. 建议尽可能使用JMeter内置测试元素,可以通过__Random()__intSum()函数组合来实现您的要求。两者都提供了将生成的值存储到JMeter变量中的可能性。查阅Apache JMeter Functions - An Introduction文章以了解有关JMeter Functions概念的更多信息。
  2. 如果您绝对需要编写脚本,请注意JMeterVariables类实例的vars速记,它提供对JMeter变量的读/写访问,因此您可以将生成的值放入ie中${foo} JMeter变量为:

    vars.put("foo", Value);
    
  3. Since JMeter 3.1 it's recommended to use JSR223 Test Elements and Groovy language for scripting,因此请考虑在下一个可用机会时迁移到Groovy。