首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在SOAP UI中修改onRequestscript()上的xml

如何在SOAP UI中修改onRequestscript()上的xml
EN

Stack Overflow用户
提问于 2012-03-27 14:52:11
回答 1查看 2K关注 0票数 4

下面是我用onRequestscript编写的代码

代码语言:javascript
复制
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,所以我想根据我的业务逻辑修改xml instead.But,这是错误的……所以有没有人能帮我修改一下onRequestscript中的xml ...

类似于XML

代码语言:javascript
复制
<Something>
    <Data1>
      <value>100</value>
    <Data1>
    <Data2>
      <value>200</value>
    <Data2>
</Something>

修改为如下所示的

代码语言:javascript
复制
    <Something>
    <Data1>
      <value>101</value>
    <Data1>
    <Data2>
      <value>201</value>
    <Data2>
</Something>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-26 18:57:00

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

我使用的是免费的SoapUI 3.6.1,但它的输出对象似乎与您的示例不同。根据您的需要修改代码。

代码语言:javascript
复制
// 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)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9884653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档