这感觉很愚蠢,但这段代码出了什么问题?我的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
输出如下:
Mon Aug 19 12:38:04 ADT 2013:INFO:行数为:7
Mon Aug 19 12:38:04 ADT 2013:INFO:Loop for: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
答案 0 :(得分:10)
您的cnt
变量的类型为String(“7”)。 ASCII数值“7”为55,这就是为什么循环计数最多为54。
尝试以下方法:
for(int i = 0; i<(cnt as int); i++){
println "At row: " + i.toString()
}