将SOAP UI模拟请求保存到文件

时间:2015-06-23 07:20:28

标签: web-services soap request soapui

我使用Soap UI基本版进行一些模拟。我需要将我的请求保留到某个文件中。我刚刚使用一些预定义的输入输出规则生成了模拟服务,我在网上搜索并找到了:

def logArea = com.eviware.soapui.SoapUI.logMonitor.getLogArea( "http log" );
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context) 

Date startTime = new Date();
def cur_Time = startTime.getMonth() + "_" + startTime.getDate()
cur_Time = cur_Time + "_" + startTime.getHours()  + "_" + startTime.getMinutes() +startTime.getSeconds()

def testPath = "C:/Users/..." + cur_Time  + ".log"
def logFile = new File(testPath)

logFile.write("soapUI Logs In a file.\r\n")
   if( logArea !=null )
   {
      def model = logArea.model
      if( model.size > 0 )            
         for( c in 0..(model.size-1) )         
           logFile.append("\n" + model.getElementAt( c ))         
   }

logArea.clear() 

这只能从Soap UI GUI请求调用中正常工作。即使我从外部服务中调用这个模拟服务,我如何能够坚持我的请求?

我没有任何测试用例,也不需要保存来自它们的请求,只需要来自外部系统的直接请求。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您想将Mock service收到的所有请求保存在文件中,只需执行以下操作即可。在模拟服务中,打开onRequest script选项卡,如下图所示(每次服务收到请求时都会执行此脚本):

enter image description here

在此选项卡中添加以下groovy脚本。

def myRequestPath = 'C:/temp/request_' + System.currentTimeMillis()  + ".log"
def logFile = new File(myRequestPath)
logFile.append(mockRequest.getRequestContent())

onRequest script上下文中,您可以使用mockRequest对象(com.eviware.soapui.impl.wsdl.mock.WsdlMockRequest type),并且可以使用getRequestContent()方法从此对象中获取请求内容,然后此脚本将此对象保存在文件中。

这个脚本比你的更容易,因为它直接从对象获取响应,而不是试图从soapui日志选项卡中获取响应......

希望这有帮助,