首页 文章

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

提问于
浏览
1

我在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 回答

  • 2

    这是因为您没有向上下文添加所需的属性 .

    张以下声明 .
    From:

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

    To:

    context.uploadText1 = uploadText1
    context.uploadText2 = uploadText2
    

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

    • 不需要任何 import 语句

    • 不需要声明 def util

相关问题