首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用BSF后处理器中使用的变量作为另一个采样器中的参数

使用BSF后处理器中使用的变量作为另一个采样器中的参数
EN

Stack Overflow用户
提问于 2012-06-30 16:09:00
回答 1查看 10K关注 0票数 1

我在采样器中添加了一个BSF后处理器。

后处理器中的脚本为:

代码语言:javascript
复制
var array = JSON.parse(prev.getResponseDataAsString());

array.forEach(function(object)
{
  OUT.println("patient_id: "+object.patientId);
  OUT.println("fname: "+object.fname);
  OUT.println("lname: "+object.lname);
});

现在我想在另一个请求的参数中使用object.patientId、object.fname、object.lname值作为参数。

例如。

代码语言:javascript
复制
Thread Group
- Sampler1
    BSF Post-Processor
- Sampler2

我想在Sampler2中使用BSF Post Processor的Sampler1脚本中的变量作为参数。这有可能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-30 18:09:49

很容易:BSF PostProcessor提供了对Jmeter变量/属性的读/写访问:

变量-( JMeterVariables) -提供对变量的读/写访问权限:vars.get(键);vars.put(键,val);vars.putObject("OBJ1", Object());vars.getObject("OBJ2");

props - (JMeterProperties类java.util.Properties) -例如props.get("START.HMS");props.put("PROP1","1234");

在最简单的情况下,您可以使用

代码语言:javascript
复制
vars.put(patientId,object.patientId.toString());
vars.put(fName,object.fname.toString());
vars.put(lName,object.lname.toString());

在BSF PostProcessor中设置变量,然后获取它们的值,如下所示

代码语言:javascript
复制
vars.get("patientId")

代码语言:javascript
复制
${patientId}

但是,因为您一次提取foreach循环中的所有记录,所以不能使用这种方法。

在这种情况下,最好使用如下代码:将foreach循环中提取的所有记录值写入csv-file,然后使用例如CSV Data Set Config在循环中逐个读取记录,并与Sampler2一起使用这些值:

代码语言:javascript
复制
While Controller
    CSV Data Set Config
    Sampler 2

...As嗯,如果我找到另一种更好的方法,我会很高兴知道的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11272565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档