vars.put函数未将所需值写入jmeter参数

时间:2018-10-23 11:38:52

标签: jmeter jmeter-5.0

下面是我一直试图在JMETER中解决以下UseCase的代码。感谢您的快速帮助。

用例: 需要验证页面响应中的特定文本(例如“历史记录”),并且如果文本计数大于50,则需要对页面内的选项进行随机选择。如果文本计数小于50,则第一个选项需要选择。

我是Jmeter的新手,正尝试使用JSR223 POST处理器解决此问题,但不知何故卡在vars.put函数中,在该函数中,我看不到在V参数中填充了所需的数字。

使用边界匹配提取器,匹配项1满足第1个选择,而0满足随机选择。

def TotalInstanceAvailable = vars.get("sCount_matchNr").toInteger()
log.info("Total Instance Available = ${TotalInstanceAvailable}");
def boundary_analyzer =50;
def DesiredNumber,V

if (TotalInstanceAvailable < boundary_analyzer)
{
    log.info("I am inside the loop")
     DesiredNumber = 0;
    log.info("DesiredNumber= ${DesiredNumber}");
    vars.put("V", DesiredNumber)
    log.info("v= ${V}");
}
else{
    DesiredNumber=1;
    log.info("DesiredNumber=${DesiredNumber}");
      vars.put("V", "DesiredNumber")
    log.info("v= ${V}");
}

def sCount = vars.get("sCount")
log.info("Text matching number is ${sCount_matchNr}")

1 个答案:

答案 0 :(得分:0)

  1. 您无法使用vars.put()函数在JMeter变量中存储整数,您需要先将其强制转换为String,才能更改此行:

    vars.put("V", DesiredNumber)
    

    对此

    vars.put("V", DesiredNumber as String)
    

    或者,您可以使用vars.putObject()函数,该函数可以存储所有内容,但是您可以通过调用vars.getObject()

  2. 仅在JSR223 Elements中使用该值。
  3. 每当您遇到JMeter脚本问题时,就习惯于查看 jmeter.log 文件或切换Log Viewer窗口-在绝大多数情况下,您会找到根目录在日志文件中引起问题的原因:

    JMeter Log Viewer