gpt4 book ai didi

groovy - 如何使用groovy脚本将子元素动态添加到SOAPUI中的SOAP请求

转载 作者:行者123 更新时间:2023-12-04 15:23:24 25 4
gpt4 key购买 nike

我有一个接受 1..n 件元素添加到购物篮的请求。默认请求有一个带有一些子元素的“item”元素,我想添加 N 个带有子元素的项目我现在可以使用 creaeElementNS 添加 Item 父元素我想将子元素添加到“item”,如下所示,可以有人对此有所了解

<basket:item>
<basket:itemId>222</basket:itemId>
<basket:itemCode>DEF</basket:itemCode>
<basket:item>

Groovy 脚本

def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
def holder = groovyUtils.getXmlHolder( "createBasket#Request" )
def parentnode = holder.getDomNode( "//basket:createBasketRequest" )
def basketTotal= holder.getDomNode( "//basket:itemsTotal" )
def itemsTag = requestDoc.createElementNS(parentnode.getNamespaceURI(), "item")
parentnode.insertBefore(itemsTag , basketTotal)
holder.updateProperty()

电流输出

<basket:createBasketRequest>
<basket:item>
<basket:itemId>111</basket:itemId>
<basket:itemCode>ABC</basket:itemCode>
</basket:item>
<basket:item>
</basket:item>
<basket:itemsTotal>500.00</basket:itemsTotal>
</basket:createBasketRequest>

期望输出

<basket:createBasketRequest>
<basket:item>
<basket:itemId>111</basket:itemId>
<basket:itemCode>ABC</basket:itemCode>
</basket:item>
<basket:item>
<basket:itemId>222</basket:itemId>
<basket:itemCode>DEF</basket:itemCode>
<basket:item>
<basket:itemsTotal>500.00</basket:itemsTotal>
</basket:createBasketRequest>

编辑:我正在使用soapUI和TestCase选项,在添加篮子请求步骤之前有一个GroovyScript步骤,groovy脚本在实际发送请求之前准备添加篮子请求,例如,如果我的测试用例提到1个项目,它应该使用默认的一个项目请求,所以我不用担心添加另一个 Item 元素,但是当我的测试用例显示 2 个项目时,我必须创建第二个 Items 元素(以及子元素)并在实际发送添加篮子请求之前使用 groovy 脚本步骤准备添加篮子请求

最佳答案

不确定它是否有效(我不使用 SoapUI),但这有帮助吗?

def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
def holder = groovyUtils.getXmlHolder( "createBasket#Request" )
def parentnode = holder.getDomNode( "//basket:createBasketRequest" )
def basketTotal = holder.getDomNode( "//basket:itemsTotal" )

def nodeText = '''<basket:item>
| <basket:itemId>222</basket:itemId>
| <basket:itemCode>DEF</basket:itemCode>
|</basket:item>'''.stripMargin()

def nodeHolder = new com.eviware.soapui.support.XmlHolder( nodeText )
def nodeItem = nodeHolder.getDomNode( "//basket:item" )
def importNode = requestDoc.importNode( nodeItem, true )

parentnode.insertBefore( importNode, basketTotal )

holder.updateProperty()

关于groovy - 如何使用groovy脚本将子元素动态添加到SOAPUI中的SOAP请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18381701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com