我试图比较groovy中的两个数组。到目前为止,我的尝试得到了好坏参半的回应,因此我向集体寻求建议。
在下面的代码中,我将获取2个REST响应,对它们进行解析,并将Invoice节点下的所有内容放入一个数组中。然后,我进一步限定我的数组,这样我就有了InvoiceID的列表,然后尝试比较两个响应的结果,以确保它们是相同的。
当我比较InvoiceID(Guid)的数组时,它们匹配——这不是我所期望的,因为我的2个响应源之间的发票订单当前不同。
当我对发票ID的数组进行排序时,结果会有所不同。
我怀疑我的代码有问题,但我花了一个小时仔细检查,但无济于事。
任何关于在groovy中对数组进行排序或以下代码的建议都将不胜感激:
gu = new com.eviware.soapui.support.GroovyUtils( context )
def xmlSlurper = new groovy.util.XmlSlurper()
// Setting up the response parameters
def responseSTAGE = xmlSlurper.parseText(context.expand( ${GET Invoices - STAGE#Response} ));
def responseSTAGE2 = xmlSlurper.parseText(context.expand( ${GET Invoices - STAGE2#Response} ));
responseInvoicesSTAGE = responseSTAGE.Invoices
responseInvoicesSTAGE2 = responseSTAGE2.Invoices
def arrayOfInvoicesSTAGE = []
def arrayOfInvoicesSTAGE2 = []
def counter = 0
for (invoice in responseInvoicesSTAGE.Invoice) {
arrayOfInvoicesSTAGE[counter] = responseInvoicesSTAGE.Invoice[counter].InvoiceID
//log.info counter+" STAGE"+arrayOfInvoicesSTAGE[counter]
arrayOfInvoicesSTAGE2[counter] = responseInvoicesSTAGE2.Invoice[counter].InvoiceID
//log.info counter+" STAGE2"+arrayOfInvoicesSTAGE2[counter]
counter++
}
log.info arrayOfInvoicesSTAGE
log.info arrayOfInvoicesSTAGE2
def sortedSTAGE = arrayOfInvoicesSTAGE.sort()
def sortedSTAGE2 = arrayOfInvoicesSTAGE2.sort()
log.info sortedSTAGE