我将多个日期传递给我的请求,从groovy我返回这样的内容(日期各不相同):[2018-06-11, 2018-06-13, 2018-06-11, 2018-06-14, 2018-06-11, 2018-06-14]
在版本2.3.0之前我使用下面的脚本访问每个元素(这个给出了2018-06-11):
${Groovy-CheckIn-CheckOut#result#$[0]}
但是在最新版本中它返回空,GetData也不再将其识别为数组。
是否有其他方式从请求访问数组,它是否与JSON版本更新有关,虽然我没有使用它?
P.S:我不确定是否有一个我应该等待的错误或过时的功能我不能再使用,并且不知道如何在当前状态下检索数据...答案 0 :(得分:1)
尝试将其添加到测试运行上下文中,而不是您的脚本return
:
context['array'] = myarray
然后使用内联Groovy脚本而不是属性扩展。即,使用${=a.getB()}
而不是${a#b}
。在我们的案例中:
${=context['array'][0]}
我通常更喜欢内联脚本而不是属性扩展,因为我可以编写任何我想要的Groovy,但是有一个问题,因为SoapUI无法正确地转义大括号。所以不要尝试像:
${=context['array'].find {it > new Date()} }
如果您发现确实想要这样做,可以使用内联使用的任何Closures预加载上下文:
context['array'] = myarray
context['isFuture'] = { it > new Date() }
然后内联:
${=context['array'].find context['isFuture'] }
答案 1 :(得分:0)
在与smartbear支持的一些对应之后,似乎不再支持,事实上他们从未做过,正式,虽然传递类似[123,4]的东西仍然有效,所以它是熊与日期。
最后,经过一些浏览后,我使用了JsonOutput库的转换,因为它是最少量更改的修复,并且在请求的接收端完全没有任何更改:
return new groovy.json.JsonOutput().toJson( [...] )