Groovy 将人工生成的XML插入SOAPUI请求
我尝试在SOAPUI中执行以下操作:Groovy 将人工生成的XML插入SOAPUI请求,groovy,soapui,cdata,Groovy,Soapui,Cdata,我尝试在SOAPUI中执行以下操作: 读取响应并从中提取节点 将节点插入到另一个请求中 在Groovy脚本中生成一些xml并存储在TestCase属性中 将属性中生成的xml作为子节点插入步骤2中插入的节点 对于1和2:响应的结构类似于 <A><B>bb</B><C>cc</C><D>dd</D></A> 插入节点不起作用,因为无法将属性放置在E节点应该位于的位置(据我所知) 我尝试通过另一个属性转
<A><B>bb</B><C>cc</C><D>dd</D></A>
插入节点不起作用,因为无法将属性放置在E节点应该位于的位置(据我所知)
我尝试通过另一个属性转移测试步骤插入E节点-属性的值作为子节点插入到A节点的请求中(与步骤2中将A节点从响应复制到下一个请求的方式相同)。结果是:
<A><![CDATA[<E>ee</E>]]<<B>bb</B><C>cc</C><D>dd</D></A>
ee]]对于1和2,您可以只使用一个简单的
假设您的回答如下所示:
<AAA>
<BBB/>
<CCC/>
<BBB/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC/>
</AAA>
如果您想变得更花哨,可以使用其中的一种,其中一些是用SoapUI打包的。这是一种可能性
对于4,您将再次使用属性扩展:${#TestCase#my#u property}
您的问题相当广泛,因此我下面的答案同样广泛。如果你想缩小范围,请通读并编辑你的问题。谢谢,这真的很有帮助:)${{#Response//*:DDD}我们也可以在不需要时使用${#Response/*:DDD/*}node@SiKing此解决方案的问题是:-它将不需要的名称空间附加到节点。例如,Name www.udzial.com>而我在输出中得到的是Name www.udzial.com,所以我不想添加名称空间(前缀),也就是说,您可以看到添加了'mr'。@Gauravkhurana如果您需要操作名称空间,您需要求助于一些Java库。。。在第#3点之后的注释中提到。
${#TestCase#new_xml}
<A><![CDATA[<E>ee</E>]]<<B>bb</B><C>cc</C><D>dd</D></A>
<AAA>
<BBB/>
<CCC/>
<BBB/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC/>
</AAA>
// Generate some xml in a Groovy script
def xml = '<AAA><BBB/><CCC/><BBB/><BBB/><DDD><BBB/></DDD><CCC/></AAA>'
// store in a TestCase property
testRunner.testCase.setPropertyValue('my_property', xml)