这感觉很愚蠢,但这段代码有什么问题?我的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
Run Code Online (Sandbox Code Playgroud)
输出如下:
2013年8月19日星期一12:38:04:信息:行数是:7
星期一8月19日12:38:04 ADT 2013:INFO:Loop竞选:56
编辑...让我们尝试不同的东西,忘记变量x,然后像这样打印行:
for(int i = 0; i<cnt; i++){
log.info "At row: " + i.toString()
}
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
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
Run Code Online (Sandbox Code Playgroud)
Joh*_*ner 10
您的cnt变量是String类型("7").ASCII数值"7"为55,这就是为什么循环计数最多为54的原因.
请尝试以下方法:
for(int i = 0; i<(cnt as int); i++){
println "At row: " + i.toString()
}
Run Code Online (Sandbox Code Playgroud)