在Java Request Sampler中获取并设置JMeter的属性

时间:2018-04-08 09:55:44

标签: java jmeter jsr223

我一直在使用JSR223采样器来处理一些java代码,但现在我正在实现Java Request sampler。 JSR223代码无法直接在Java Request采样器中工作。需要做出一些改变。对于例如在JSR223中,代码是:

 props.put("p_driver", driver);
 object = props.get("p_driver").getJsonObject(dbser, dbn, wfid);

这里的驱动程序是Driver类型的对象(我们编写的实用程序类。

我想创建一个Object类型的属性并将驱动程序对象保留在其中。 此外,我想通过Java获取和设置不同的属性。 我知道我们可以使用:

JMeterContextService.getContext().getCurrentSampler().getProperties("p_driver");

但是,jmeter变量和jmeter属性在Java Request Sampler中的工作原理非常清晰。

2 个答案:

答案 0 :(得分:2)

检查JavaSamplerContext哪个是Sampler上下文,它只支持get(只读)操作:

  

JavaSamplerContext用于向JavaSamplerClient实现提供上下文信息。这当前包含在GUI中指定的初始化参数。

代码中的实施说明:

  

此类中的所有方法目前都是只读的。

我看到你设法得到属性,所以这是为了读取GUI中使用的属性/变量,而不是设置/更新属性/变量。

特别是不支持影响多线程的更新属性:

  

如果将来包含更新方法,则应定义它们以便a         JavaSamplerContext的单个实例可以与每个线程相关联。

这是读取JMeter变量的kafka示例:

答案 1 :(得分:1)

您正在寻找的是JavaSamplerContext

使用JMeter 4.0,您可以访问:

然后您可以通过以下方式获取变量或属性:

  。

javaSamplerContext.getJMeterProperties()得到(" PROPNAME&#34)

     。

javaSamplerContext.getJMeterVariables()得到("的varName&#34)

然后,您可以通过以下方式设置变量或属性:

  

javaSamplerContext.getJMeterProperties()。put(" propName",你想要的对象)

     

javaSamplerContext.getJMeterVariables()。putObject(" varName",你想要的对象)

相关问题