如何在控制器工作时制作jmeter

时间:2013-10-10 16:41:22

标签: jmeter

我无法让while控制器在jmeter中工作。

我觉得我读到它没有重新评估用户定义的变量,所以我试图改用属性。

我首先使用BSF断言设置一个名为keepLo​​oping的属性

${__setProperty(keepLooping, true)};

这似乎有效,因为它以

的条件进入While控制器
${__property(keepLooping)}

但我不能因为我的生活而把它变成别的东西。我希望它根据http请求的结果文本更改属性。

所以我使用正则表达式提取器来设置变量,我可以看到它已经设置好了。然后我试图使用BSF断言根据我设置的变量设置keepLo​​oping属性。我使用javascript如下:

log.info("IM IN HERE");
log.info("props is "+props);
//log.info("props keep looping is  "+props["keepLooping"]);
if (${surveyRequired} == false){
    log.info("IM IN HERE 1A and props is "+props);
    ${__setProperty(keepLooping, true)};
    log.info("IM IN HERE 1B");
}
else {
    log.info("IM IN HERE 2A");  
    ${__setProperty(keepLooping, false)};
    log.info("IM IN HERE 2B");
}

我无法弄清楚如何使用javascript设置属性 - 我尝试了几件事。有人可以帮忙吗?非常感谢!

也有人可以推荐一个好的资源来协商似乎是jmeter的许多'怪癖'吗?非常感谢!

2 个答案:

答案 0 :(得分:2)

"我觉得我觉得它没有重新评估用户定义的变量" - 我使用JMeter 2.9,确实如此。我使用用户定义的变量来计算循环次数。看起来像是:${__javaScript(${MY_USER_DEFINED_VARIABLE}>0)}。唯一令人讨厌的事情是我必须得到变量的值,递增它,转换为字符串(Groovy中的toString()),然后将新值放入MY_USER_DEFINED_VARIABLE(使用vars.putObject("MY_USER_DEFINED_VARIABLE",localBSFVariable)

答案 1 :(得分:0)

使用vars.put或props.put将有所帮助,详细解释详见in this jmeter thread.