jmeter断言:比较变量时出错



我试图用从数据库中获得的值来主张我的API响应数据。

我的代码无法比较我的变量,除非我将toString()添加到两个变量中。有什么办法解决的还是toString()强制性的?

所讨论的代码是:

Boolean comparision = false;
for (int i; i < vars.getObject("dbData").size(); i++) {    
if (vars.getObject("dbData").get(i).get("DbData").toString().equals(${codeid_API}.toString()))
{
    comparision = true;            
}     
} 

${codeid_API}是我存储API响应数据的变量。 (vars.getObject("dbData").get(i).get("DbData")从我的数据库中获取值。

您可以使用objects.equals

Objects.equals(vars.getObject("dbData").get(i).get("DbData"), ${codeid_API});

如果参数彼此相等,则返回true,否则为false。

对于整数,您可以使用==进行比较并使用as int进行铸造

if (vars.getObject("dbData").get(i).get("DbData") as int == vars.get("codeid_API") as int );

不要以 ${codeid_API}的形式嵌入jmeter变量到groovy脚本中,如果启用了启用的编译脚本缓存,则可以解决,它可能会破坏您的脚本逻辑。

考虑将其替换为 vars.get('codeid_API),而不是 vars是jmeterriables class实例

的速记

JSR223采样器文档的报价:

在将脚本字段传递给解释器之前,

jmeter处理功能和变量引用,因此参考文献只能解决一次。脚本文件中的变量和功能引用将逐字传递给解释器,这可能会导致语法错误。为了使用运行时变量,请使用适当的道具方法,例如

props.get("START.HMS");
props.put("PROP1","1234");

更多信息:调试JDBC采样器在Jmeter中导致

相关内容

  • 没有找到相关文章

最新更新