汤 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
这里我只是从属性文件中获取值(整数)并在 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