带有 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()
希望这对您有所帮助,
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()
希望这对您有所帮助,