【问题标题】:How to get the command line logs in SoapUI using groovy script?如何使用 groovy 脚本在 SoapUI 中获取命令行日志?
【发布时间】:2022-10-17 14:23:00
【问题描述】:
我正在使用 groovy 脚本从 SoapUI 应用程序运行 exe。下面是我从社区获得的代码 sn-p,它对我有用。
(https://community.smartbear.com/t5/SoapUI-Open-Source-Questions/SOAPUI-Groovy-to-run-exe-files/td-p...)
但是我没有在 SoapUI 中获得任何命令行执行的更新/进度。
有人可以帮我解决这个问题。我需要使用 groovy 脚本在 SoapUI 中获取整个命令行日志
import java.io.InputStreamReader
ProcessBuilder pb = new ProcessBuilder("cmd","/c","C:\\dummy.exe")
pb.redirectErrorStream(true)
Process p = pb.start()
InputStreamReader isr = new InputStreamReader(p.inputStream)
char[] cbuf = new char[1024]; //read 1024 characters, increse to higher amount if necessary
isr.read(cbuf);
log.info(new String(cbuf))
【问题讨论】:
标签:
java
api
groovy
automation
soapui
【解决方案1】:
我在 SoapUI 中使用 Groovy 脚本测试步骤这样做:
def command = "cmd /c dir C:"
def proc = command.execute()
def outputStream = new StringBuffer()
proc.waitForProcessOutput(outputStream, System.err)
def result = outputStream.toString()
log.info result
【解决方案2】:
import java.io.InputStreamReader
ProcessBuilder pb = new ProcessBuilder("cmd","/c","C:\dummy.exe > C:\logfile.txt")
pb.redirectErrorStream(true)
Process p = pb.start()
InputStreamReader isr = new InputStreamReader(p.inputStream)
char[] cbuf = new char[1024]; //read 1024 characters, increse to higher amount if necessary
isr.read(cbuf);
log.info(new String(cbuf))
日志将保存在 logfile.txt 文件中。