使用groovy脚本从SoapUI中的测试用例捕获脚本日志

使用groovy脚本从SoapUI中的测试用例捕获脚本日志,groovy,soapui,Groovy,Soapui,有人能帮我用groovy脚本从soap UI中的测试用例中捕获脚本日志吗 请注意,脚本日志只记录log.info所记录的内容。此外,只有在运行整个测试用例时,日志才会放在脚本日志中,而不是在手动运行groovy脚本时 def logArea = com.eviware.soapui.SoapUI.logMonitor if( logArea != null ) { def ix = logArea.indexOfTab( "Script log" ); if( ix >= 0

有人能帮我用groovy脚本从soap UI中的测试用例中捕获脚本日志吗

请注意,脚本日志只记录log.info所记录的内容。此外,只有在运行整个测试用例时,日志才会放在脚本日志中,而不是在手动运行groovy脚本时

def logArea = com.eviware.soapui.SoapUI.logMonitor
if( logArea != null )
{
   def ix = logArea.indexOfTab( "Script log" );
   if( ix >= 0 )
   {
      def logPanel = logArea.getComponentAt( ix )
      def model = logPanel.logList.model
      if( model.size > 0 )
      {
         def out = new java.io.PrintWriter( "C:/pathtofile/myfile.log" )

         for( c in 0..(model.size-1) )
            out.println( model.getElementAt( c ))

         out.close()
      }
   }
}

@canpan下面的代码为我工作,感谢您的持续帮助

"


你必须列出你尝试过的东西;您好,Canpan,我尝试了上面的代码,但是出现了一个错误,指出indexOfTab()是string类型的,我不知道为什么会出现这个错误,因为“脚本日志”是我在indexOfTab()中传递的字符串。您可以粘贴您键入的确切代码吗?您使用的是什么版本的soapui/ready api?我再次测试了这段代码,效果很好。有一个机会,你有一个打字错误的地方。嗨,坎潘,请找到下面的代码。def logArea=com.eviware.soapui.soapui.logMonitor if(logArea!=null){def ix=logArea.indexOfTab(“脚本日志”);if(ix>=0){def logPanel=logArea.getComponentAt(ix)def model=logPanel.logList.model if(model.size>0){def out=new java.io.PrintWriter(“C:/pathtofile/myfile.log”)对于(c in 0..(model.size-1))out.println(model.getElementAt(c))out.close()}}}请注意,我使用的是SoapUI 5.2.1,很可能就是这种情况。如果您使用的是免费版本,它可能没有为此所需的日志记录。无论哪种方式,你都应该升级到5.3,因为我相信这是他们拥有的最新免费版本。如果它确实有日志记录。您将在屏幕左下角看到一个logs按钮,如果您单击该按钮,您将能够看到它正在记录的日志。如果你看不到这一点,那么你就不能在免费版本中做到这一点。日志只能在Ready API中。
def logArea = com.eviware.soapui.SoapUI.logMonitor.getLogArea("script log")
def LogFile = new File ("I:/SOAP UI/AutomationFramework/script.txt")
LogFile.write("Generating Script Logs...\r\n")
if (logArea != null)
{
    def model = logArea.model
    if (model.size > 0)
    {
        for (c in 0..(model.size-1))
        {
            LogFile.append(model.getElementAt(c).toString() + "\r\n")
        }
    }
}