1

这感觉很愚蠢,但这段代码有什么问题?我的 for 循环运行到 55

def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def holder = groovyUtils.getXmlHolder("StepName#ResponseAsXml")

def cnt = holder["count(//Results/ResultSet/Row)"]
log.info "Row count is: " + cnt

for(int i = 1; i<=cnt; i++){
    x = x + 1
}

log.info "Loop ran for: " + x

输出如下:

2013 年 8 月 19 日星期一 12:38:04 ADT:INFO:行数为:7

2013 年 8 月 19 日星期一 12:38:04 ADT:INFO:Loop 运行时间:56

编辑...让我们尝试一些不同的东西,忘记变量 x 并像这样打印行:

for(int i = 0; i<cnt; i++){
    log.info "At row: " + i.toString()
}

我得到以下输出:

Mon Aug 19 12:57:41 ADT 2013:INFO:Row count: 7
Mon Aug 19 12:51:03 ADT 2013:INFO:At row: 0
Mon Aug 19 12:51:03 ADT 2013:INFO:At row: 1
Mon Aug 19 12:51:03 ADT 2013:INFO:At row: 2
Mon Aug 19 12:51:03 ADT 2013:INFO:At row: 3
.
.
.
.
Mon Aug 19 12:51:03 ADT 2013:INFO:At row: 54
4

1 回答 1

10

您的cnt变量是字符串类型(“7”)。“7”的 ASCII 数值是 55,这就是为什么您的循环最多计数为 54。

尝试以下操作:

for(int i = 0; i<(cnt as int); i++){
    println "At row: " + i.toString()
}
于 2013-08-19T16:10:38.783 回答