在Mock Service的Script Dispatch中将数据从SOAP请求传递到SOAP响应

时间:2017-11-04 21:39:55

标签: xml soap groovy soapui

我在SoapUI中使用Script派遣模拟服务

示例请求内容

<upload>
   <uploadtext>This is my first upload text</uploadtext>
   <uploadtext>second upload text</uploadtext>
</upload>

我的要求是将相同的信息传递给我的回复

<upload>
       <uploadtext>${uploadText1}</uploadtext>
       <uploadtext>${uploadText2}</uploadtext>
</upload>

我正在使用SoapUI并尝试使用groovy脚本。我是groovy的新手,如果有任何其他简单的方法,请告诉我。

这是我到目前为止所尝试过的。

import javax.xml.xpath.*
import groovy.xml.StreamingMarkupBuilder
import groovy.lang.Binding
import groovy.lang.Script

def util = new com.eviware.soapui.support.GroovyUtils(context)
def xml = new XmlSlurper().parseText(mockRequest.requestContext)
def uploadText1 = xml.body.upload.uploadtext[0]
def uploadText2 = xml.body.upload.uploadtext[1]
//above uploadText1 and uploadText2 are storing values from my request
//however I am struggling to assign these values to response 
context.setProperty("UploadText", uploadText1)
context.setProperty("UploadText", uploadText2)

无法看到我的回复与请求相同

感谢任何帮助。

谢谢。

1 个答案:

答案 0 :(得分:2)

这是因为您没有在上下文中添加所需的属性。

张在下面的陈述。
发件人:

context.setProperty("UploadText", uploadText1)
context.setProperty("UploadText", uploadText2)

context.uploadText1 = uploadText1
context.uploadText2 = uploadText2

顺便提一下,其他建议(如果Script发货中没有别的事情可做:

  • 不需要任何import语句
  • 不需要声明def util