web-services – 如何在SOAP UI中修改onRequestscript()上的xml

这是我在onRequestscript中编写的代码

def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
path = "D:\\Service\\something2.xml";
log.info("path = "+ path);
if (mockRequest.method == "POST" )
{
mockRunner.returnFile( mockRequest.httpResponse, new File(path))
return new com.eviware.soapui.impl.wsdl.mock.WsdlMockResult(mockRequest)
}

但是这个脚本完全改变了我的XML …我想修改现有的XML(something.xml)..

我实际上是不能修改xml所以我想到changinf而不是xml.但是根据我的业务逻辑它错了…所以任何人都可以帮我修改xml
在onRequestscript ….

XML就好

<Something>
    <Data1>
      <value>100</value>
    <Data1>
    <Data2>
      <value>200</value>
    <Data2>
</Something>

修改过这样的

    <Something>
    <Data1>
      <value>101</value>
    <Data1>
    <Data2>
      <value>201</value>
    <Data2>
</Something>

最佳答案 您可以使用XmlSlurper来解析和更新XML文件中的值.然后从更新的XML生成一个字符串,并将其设置为模拟服务的响应.

我使用免费的SoapUI 3.6.1,但似乎它的输出对象与你的例子不同.根据您的需求修改代码.

// get and parse XML file content
path = "D:\\Service\\something2.xml";
def doc = new XmlSlurper().parse(path)

// update values
doc.Data1.value[0] = 101
doc.Data2.value[0] = 201

// generate and return XML string as service response
import groovy.xml.StreamingMarkupBuilder
def result = new StreamingMarkupBuilder().bind{ mkp.yield doc  }.toString()
mockResponse.setResponseContent(result)
点赞