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

SOUP UI Groovy | | For循环循环50次,条件是在任何地方使用此数字,groovy,soapui,Groovy,Soapui,在这里,我只是从属性文件中获取valueinteger,并使用相同的for循环。 注意:如果我使用direct number而不是getTestCasePropertyValue值,它将按预期工作。不知道循环是如何循环50次的 Groovy脚本: def getTestCasePropertyValue = testRunner.testCase.getPropertyValue( "NumOfPayments" ) log.info(getTestCasePropertyValue ) f

在这里,我只是从属性文件中获取valueinteger,并使用相同的for循环。 注意:如果我使用direct number而不是getTestCasePropertyValue值,它将按预期工作。不知道循环是如何循环50次的

Groovy脚本:

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

log.info(getTestCasePropertyValue )

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

        log.info("Test Print"+i)


}

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

此外,字符“2”作为整数为50,因此for循环条件也会将其强制转换为50

def getTestCasePropertyValue = "2"

println(getTestCasePropertyValue.inspect())
// → '2'
println(getTestCasePropertyValue as char as int)
// → 50
因此,最好使用例如字符串上的toLong显式转换为数字:

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

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

此外,字符“2”作为整数为50,因此for循环条件也会将其强制转换为50

def getTestCasePropertyValue = "2"

println(getTestCasePropertyValue.inspect())
// → '2'
println(getTestCasePropertyValue as char as int)
// → 50
因此,最好使用例如字符串上的toLong显式转换为数字:

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

如果您可以添加此处记录的内容,这将非常有帮助。更好的方法是:使用getTestCasePropertyValue.inspect输出值最有可能是一个字符串或您不期望的其他数据类型下面是我的输出,其中来自属性的NumOfPayments值为2Fri 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 Mar06 12:58:47 IST 2020:信息:测试打印2 3月06日星期五12:58:47 IST 2020:信息:测试打印3 3月06日星期五12:58:47 IST 2020:信息:测试打印4 3月06日星期五12:58:47 IST 2020:信息:测试打印5 3月06日星期五12:58:47 IST 2020:信息:测试打印10。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。2009年3月6日星期五12:58:47 IST 2020:信息:测试打印48年3月6日星期五12:58:47 IST 2020:信息:测试打印49年3月6日星期五12:58:47 IST 2020:信息:测试打印50如果您可以添加此处记录的内容,将非常有帮助。更好的方法是:使用getTestCasePropertyValue.inspect输出值最有可能是一个字符串或您不期望的其他数据类型下面是我的输出,其中来自属性的NumOfPayments值为2Fri 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 Mar06 12:58:47 IST 2020:信息:测试打印2 3月06日星期五12:58:47 IST 2020:信息:测试打印3 3月06日星期五12:58:47 IST 2020:信息:测试打印4 3月06日星期五12:58:47 IST 2020:信息:测试打印5 3月06日星期五12:58:47 IST 2020:信息:测试打印10。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。2008年3月6日星期五12:58:47 IST 2020:INFO:Test print 48年3月6日星期五12:58:47 IST 2020:INFO:Test print 49年3月6日星期五12:58:47 IST 2020:INFO:Test print 50hello@cfrick感谢您的快速回复。我得到了解决问题的指针,现在我的问题通过从字符串到intdef getTestCasePropertyValue=testRunner.testCase.getPropertyValue NumOfPayments def NumOfPayments=getTestCasePropertyValue.toIntegerHello@cfrick的类型转换得到了解决。感谢您的快速回复。我得到了解决问题的指针,现在通过将字符串类型转换为intdef getTestCasePropertyValue=testRunner.testCase.getPropertyValue NumOfPayments def NumOfPayments=getTestCasePropertyValue.toInteger就解决了问题