我在SOAPUI中使用groovy,目前正在尝试确定来自2个端点的响应是否产生相同的结果。
我正在将我的XML响应转换为每个端点的数组,然后循环遍历Array1,然后循环Array2以确认Array1中是否存在每个项目。
这是非常丑陋的代码,我确实看过地图,但语法让我很困惑。我不确定如何创建这样的数组映射。如何在这样的实例中创建密钥?
与此同时,为了我的幸福......有一种更优雅的方式来实现以下目标:
def outerCount = 0
def innerCount = 0
for( i in arrayOfInvoicesSTAGE)
{
for( j in arrayOfInvoicesSTAGE2)
{
if (i == j)
{
log.info outerCount+" FOUND "+arrayOfInvoicesSTAGE[outerCount] + " in both responses"
log.info "STAGE: "+i+" STAGE2: "+j
}
}
outerCount++
}
另外!奖金竖起大拇指!任何人都可以建议我如何在内循环中进行中断,以便在找到匹配后跳出来?我已经看过允许这样做的JS代码,但是不能在groovy中找到类似的东西
事实上,以上是最有气味的代码...但我必须以某种方式润滑关节..这已经很久了! :)
与以往一样,任何提示都表示赞赏。
答案 0 :(得分:1)
列表在Groovy中有一个交叉方法
def a = [ 1, 2, 3, 4, 5 ]
def b = [ 2, 3, 6 ]
a.intersect( b ).each { item ->
log.info "Found $item in both responses"
}
我认为那样做你想要的吗?
答案 1 :(得分:0)
def a = ["1thing","2thing","3thing"]
def b = ["1thing","2thing","3thing","4thing"]
// should return any element not in both lists
if (a.size < b.size ) {
b - a
} else {
a - b
}