【问题标题】:mock service with soap UI how to edit, the mock after deploying the war使用soap UI模拟服务如何编辑,部署战争后的模拟
【发布时间】:2017-08-22 08:46:53
【问题描述】:

我是soap Ui的新手,必须配置一个模拟,以模拟来自soap服务给定一些请求的响应。

这是要调度的 groovy 脚本:

def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def holder = groovyUtils.getXmlHolder(mockRequest.requestContent)
def idReq = String.valueOf(holder.getNodeValue("//id"))

switch (idReq) {
    case "74":
        context.ResultResponse = "Response_74"
        break
    case "53":
        context.ResultResponse = "Response_53"
        break
    case "37":
        context.ResultResponse = "Response_037"
        break
    case "12":
        context.ResultResponse = "Response_12"
        break
    case "147":
        context.ResultResponse = "Response_147"
        break
    case "90":
        context.ResultResponse = "Response_90"
        break
    default:
        context.ResultResponse = "Response_74"
        break
}

然后我将其部署为战争。一些同事想要编辑脚本以添加新的模拟响应。

当我只有war包时,我不知道如何编辑它。 以前有人做过吗?

【问题讨论】:

  • 因为它不仅仅是脚本更改,还需要更改项目并添加新的响应,对吗?我相信您需要更新项目并重做。

标签: groovy deployment mocking soapui war


【解决方案1】:

我相信你应该能够在没有switch 块的情况下做到这一点
即,将switch 块替换为以下语句

context.ResultResponse = "Response_${idReq}"

您无需添加更多case

基于 OP 的 cmets 编辑

可以通过向模拟服务添加多个响应来发送动态响应。您需要做的就是使用占位符值进行单一响应。每个响应都在一个文件中,根据数据加载相应的文件并将其设置为响应。没有额外的响应,也没有更改脚本。

【讨论】:

  • 谢谢你的回答,我会更改脚本,但如果没有想要的 id 响应,它将返回默认值,我希望能够编辑并添加模拟响应战争。
  • @manu,我相信您在响应中有占位符,而不是实际上不同的响应,对吧?
  • 它实际上是一个完全不同的响应,我从给定一些 id 的真实肥皂服务中得到,响应中的数据完全改变
  • 好的,实际上你甚至可以在不添加多个响应的情况下做到这一点。
  • 我该怎么做,或者我的同事只有战争的时候怎么做,他必须在soapUi中创建一个新项目并导入战争,我不知道那是不是可能...
猜你喜欢
  • 1970-01-01
  • 2018-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多