带有 Groovy 脚本读取值的 SoapUI

SoapUI with Groovy Script reading values

SoapUI 与 Groovy 我正在使用 SoapUI pro 和 groovy 脚本。我正在将请求中的客户记录读入以下内容,

def CustRec = context.expand('${GetProductPriceOffer#Request#/tem:request[1]/quot:Customers[1]}' )

CustRec 中的值为,

<quot:Customers>
<quot:Person>
<quot:CustomerType>PRIMARY</quot:CustomerType>
<quot:Sequence>0</quot:Sequence>
</quot:Person>
<quot:Person>
<quot:CustomerType>ADULT</quot:CustomerType>
<quot:Sequence>1</quot:Sequence>
</quot:Person>
</quot:Customers>

现在我想计算 Customers 中 Person 对象的总数(即在这种情况下答案是 2)。我尝试使用 while 循环,但它对我不起作用。 谁能告诉我如何使用循环实现?

提前致谢

要计算 <Person><Customers> 中出现的所有次数,您可以使用 count xpath 函数,如下所示:

def numPersons =
context.expand('${GetProductPriceOffer#Request#count(//*:Customers/*:Person)}')

另一种可能性是使用XmlSlurper而不是使用xpath,用它你可以计算<Person>的出现次数,但是如果你需要做更多的操作你可以操作Xml 以一种简单的方式。要计算 <Person>,您可以使用以下方法:

def custRec = context.expand('${GetProductPriceOffer#Request}')
// parse the request
def xml = new XmlSlurper().parseText(custRec)
// find all elements in xml which tag name it's Person
// and return the list
def persons = xml.depthFirst().findAll { it.name() == 'Person' }
// here you've the number of persons
log.info persons.size()

希望这对您有所帮助,