将数组从 Groovy 步骤传递到 ReadyApi 2.3.0 中的 SoapRequest

Passing Array from Groovy Step to SoapRequest in ReadyApi 2.3.0

我正在向我的请求传递多个日期,从 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]}

但是在最新版本中它 returns 是空的,GetData 也不再将其识别为数组。

有没有其他方法可以从请求中访问数组,它是否与 JSON 版本更新有关,虽然我没有使用它?

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

而不是你的脚本 returning 列表,尝试让它添加到测试 运行 上下文:

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'] }

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