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

标签 web-services soap groovy soapui

这是我在 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,所以我想到 changeinf 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)

关于web-services - 如何在 SOAP UI 中修改 onRequestscript() 上的 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9884653/

相关文章:

java - tomcat、jdk、jre如何背书?

android - 如何每 15 分钟将 android 设备的经纬度发送到 php web 服务

python - 你能推荐一个可以接受 WS-Attachments 的 Python SOAP 客户端吗?

c# - 在 C# 中从 SOAP 信封中提取 XML

iphone - 来自 iPhone/iPad 的 json Web 服务

c# - 将关系数据库数据表示为 XML 并使用 XPath 获取结果

php - 尝试在 Magento 中使用 Cyber​​source 模块时出现 SOAP 错误

grails - Groovy totalCount与大小

jenkins - 如何设置 cron 每天随机运行一次

java - 在 Java 中处理 XML 的更好方法