1

我将多个日期传递给我的请求,从 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 版本更新有关,尽管我没有使用?

PS:我不确定是否有我应该等待的错误或过时的功能我不能再使用,并且不知道如何在当前状态下检索数据......

4

2 回答 2

1

return尝试将其添加到测试运行上下文中,而不是您的 script列表:

context['array'] = myarray

然后使用内联 Groovy 脚本而不是属性扩展。即,使用${=a.getB()}而不是${a#b}. 在我们的例子中:

${=context['array'][0]}

我通常更喜欢内联脚本而不是属性扩展,因为我可以编写任何我想要的 Groovy,但是有一个问题,SoapUI 无法正确转义大括号。所以不要尝试这样的事情:

${=context['array'].find {it > new Date()} }

如果你发现你真的想要这样做,你可以用你想内联使用的任何闭包预加载上下文:

context['array'] = myarray
context['isFuture'] = { it > new Date() }

然后内联:

${=context['array'].find context['isFuture'] }
于 2018-03-17T02:35:14.283 回答
0

经过与 smartbear 支持的一些对应后,它似乎不再受支持,事实上他们从未正式支持过,尽管通过 [123, 4] 之类的东西仍然有效,所以它是熊与日期。
最后,经过一番浏览后,我使用了 JsonOutput 库的转换,因为它是更改最少的修复,并且在请求的接收方根本没有更改:
return new groovy.json.JsonOutput().toJson( [...] )

于 2018-03-26T15:33:18.883 回答