【发布时间】:2020-08-20 15:49:18
【问题描述】:
我有 SoapUI(免费)v5.4.0。
我需要实现一个返回 429(请求过多)状态代码的模拟服务。似乎 mockservice 允许我设置响应状态代码,但我只能从下拉列表中选择它,并且 429 不是选项之一。如何自定义模拟服务以返回真正自定义的值,而不是下拉列表中的值之一?
更新:
我尝试将模拟动作从“序列”更改为“脚本”。然后我尝试了一个非常简单的脚本,如下所示:
mockRequest.httpResponse.status = 429
然后我单击“播放”按钮,当我使用“序列”时,它只会启动侦听器并等待请求进入。相反,当我单击“播放”按钮时,它立即失败:
com.eviware.soapui.impl.wsdl.mock.DispatchException: Failed to dispatch
using script; java.lang.NullPointerException: Cannot get property
'httpResponse' on null object
然后我在此行之前添加了如下一行:
log.info("mockRequest[" + mockRequest + "]")
当我再次点击播放时,它会在脚本日志中打印:
Sat Jan 18 08:53:24 PST 2020:INFO:mockRequest[null]
我显然在这个设置中遗漏了一些基本细节。
【问题讨论】:
-
你可以使用
Script Dispath来达到同样的效果。 -
我假设您的意思是“脚本调度”。但是,我需要更多信息。通过遍历对象树并查看所有选项,我能够发现模拟操作上的选项之一是将调度类型从序列更改为脚本,并且文本框显示了一些简单的示例,但我需要有关我可以在该框中做什么的更多信息。
-
scrpt 将在收到请求时运行。这基本上是让我们对请求做我们想做的事情,并以我们想要的编程方式发送响应。
标签: soapui