汤 UI Groovy || For 循环循环 50 次,条件是在任何地方使用这个数字

SOUP UI Groovy || For loop is looping 50 times where the condition is using this number anywhere

这里我只是从属性文件中获取值(整数)并在 for 循环中使用相同的值。 注意:如果我使用直接数字而不是 "getTestCasePropertyValue" 值,它会按预期工作。不明白 loop 是如何循环 50 次的。

Groovy 脚本:

def getTestCasePropertyValue = testRunner.testCase.getPropertyValue( "NumOfPayments" )

log.info(getTestCasePropertyValue )

for(i=0; i<=getTestCasePropertyValue; i++)
{

        log.info("Test Print"+i)


}

输出:

Fri Mar 06 12:58:47 IST 2020:INFO:2 
Fri Mar 06 12:58:47 IST 2020:INFO:Test Print0 
Fri Mar 06 12:58:47 IST 2020:INFO:Test Print1 
Fri Mar 06 12:58:47 IST 2020:INFO:Test Print2 
Fri Mar 06 12:58:47 IST 2020:INFO:Test Print3 
...
Fri Mar 06 12:58:47 IST 2020:INFO:Test Print50

您的属性值是一个字符串。如果您使用 .inspect() 记录事情,您将更容易检测到此类问题。

此外,字符 '2'50 作为整数,然后 for 循环条件也会转换它。

def getTestCasePropertyValue = "2"

println(getTestCasePropertyValue.inspect())
// → '2'
println(getTestCasePropertyValue as char as int)
// → 50

所以最好明确地转换为一个数字,例如使用.toLong() 在字符串上:

println(getTestCasePropertyValue.toLong().inspect())
// → 2