我使用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请求调用中正常工作。即使我从外部服务中调用这个模拟服务,我如何能够坚持我的请求?
我没有任何测试用例,也不需要保存来自它们的请求,只需要来自外部系统的直接请求。
谢谢!
答案 0 :(得分:1)
如果您想将Mock service
收到的所有请求保存在文件中,只需执行以下操作即可。在模拟服务中,打开onRequest script
选项卡,如下图所示(每次服务收到请求时都会执行此脚本):
在此选项卡中添加以下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日志选项卡中获取响应......
希望这有帮助,