Groovy 在AfterRequest脚本soapui中访问requestContent

Groovy 在AfterRequest脚本soapui中访问requestContent,groovy,mocking,soapui,Groovy,Mocking,Soapui,我试图在webservice模拟上模拟异步响应。目标是响应一条同步确认消息,然后再向replyTo地址返回一条延迟消息。我选择的方法使用模拟服务,该服务将处理确认,然后运行一个测试用例,该测试用例将处理后的消息返回replyTo。我使用OnRequest脚本生成确认消息,使用AfterRequest脚本运行测试用例,该测试用例将模拟延迟并将响应返回到replyTo 所以问题是我可以使用哪个脚本对象访问requestContent。我看到过使用以下内容的示例: def holder = new c

我试图在webservice模拟上模拟异步响应。目标是响应一条同步确认消息,然后再向replyTo地址返回一条延迟消息。我选择的方法使用模拟服务,该服务将处理确认,然后运行一个测试用例,该测试用例将处理后的消息返回replyTo。我使用OnRequest脚本生成确认消息,使用AfterRequest脚本运行测试用例,该测试用例将模拟延迟并将响应返回到replyTo

所以问题是我可以使用哪个脚本对象访问requestContent。我看到过使用以下内容的示例:

def holder = new com.eviware.soapui.support.XmlHolder( mockRequest.requestContent )
但是mockRequest实例在AfterRequest上不可用,我可以使用哪个对象来代替请求内容的持有者

我确实找到了

def holder = new com.eviware.soapui.support.XmlHolder( mockResult.getMockRequest().requestContent )

这样做,但现在我发现在AfterRequest中运行测试脚本会延迟同步响应,为什么会发生这种情况?AfterRequest的脚本不是在模拟服务响应返回后执行的吗?我是否必须在Dispatch或OnRequest中显式执行某些内容,以便在执行AfterRequest代码之前返回响应

我知道这是个老问题,但我自己也面临同样的问题。我不知道为什么它能正常工作,但您可以通过访问OnRequest中的请求内容来避免问题,然后将所需信息存储到上下文中,并在AfterRequest中使用上下文来获取所需信息