我试图在Web服务模拟上模拟异步响应。目标是响应同步确认消息,然后将延迟消息响应回replyTo地址。我选择的方法使用模拟服务来处理确认,然后运行一个测试用例,将处理后的消息处理回replyTo。我使用OnRequest Script生成已确认的消息,并使用AfterRequest Script运行测试用例,该测试用例将模拟延迟并将响应返回到replyTo。
所以问题是我可以使用哪个脚本对象来访问requestContent。我见过使用的例子:
def holder = new com.eviware.soapui.support.XmlHolder( mockRequest.requestContent )
但是在AfterRequest上没有mockRequest实例,我可以使用哪个对象来拥有请求内容的持有者?
答案 0 :(得分:1)
我确实找到了
def holder = new com.eviware.soapui.support.XmlHolder( mockResult.getMockRequest().requestContent )
诀窍,但现在我发现在AfterRequest中运行测试脚本会延迟同步响应,为什么会发生这种情况?在模拟服务响应之后执行了AfterRequest的脚本吗?我是否必须在Dispatch或OnRequest上显式执行某些操作才能在AfterRequest代码执行之前回退响应?
答案 1 :(得分:-1)
我知道这是一个很老的问题,但我自己也遇到了同样的问题。我不知道为什么它的工作正常,但你可以通过访问OnRequest中的请求内容来避免这个问题,然后将所需的信息存储到上下文中,并使用AfterRequest中的上下文来获取所需的信息。