我必须创建一个SOAPUI测试用例。
此测试用例名为:“使用OTP(一次性密码)登录应用程序”。
我创建了简单的Groovy脚本作为SOAPUI测试步骤,该脚本在PUTTY中打开连接。
. Current table (desired)
Start END STATUS SELECTION | Cycle
2018-11-03 11:45:00.000 2018-11-03 11:45:00.000 0 0 | 0
2018-11-04 06:45:00.000 2018-11-04 07:26:20.000 2 0 | 1
2018-11-04 07:26:20.000 2018-11-04 08:16:35.000 5 0 | 1
2018-11-04 08:16:35.000 2018-11-04 08:16:55.000 6 0 | 1
2018-11-04 08:16:55.000 2018-11-04 08:19:00.000 2 0 | 1
2018-11-04 08:19:00.000 2018-11-04 08:20:10.000 3 0 | 1
2018-11-04 08:20:10.000 2018-11-04 08:25:30.000 0 0 | 1
2018-11-04 08:25:30.000 2018-11-04 08:25:55.000 1 0 | 2
2018-11-04 08:25:55.000 2018-11-04 08:54:25.000 2 0 | 2
2018-11-04 08:54:25.000 2018-11-04 09:02:25.000 5 0 | 2
2018-11-04 09:02:25.000 2018-11-04 09:03:00.000 3 0 | 2
2018-11-04 09:03:00.000 2018-11-04 09:39:44.000 0 0 | 2
2018-11-04 09:39:44.000 2018-11-04 23:17:14.000 0 0 | 2
2018-11-04 23:17:14.000 2018-11-05 00:55:35.000 0 0 | 2
2018-11-05 00:55:35.000 2018-11-05 00:56:00.000 1 0 | 3
2018-11-05 00:56:00.000 2018-11-05 03:20:36.000 2 0 | 3
2018-11-05 03:20:36.000 2018-11-05 03:52:05.000 2 0 | 3
然后我需要在PUTTY中编写一些命令并从日志文件中获取OTP变量。
但是我不知道如何通过Groovy脚本执行命令。
任何人都可以帮助我。 谢谢
编辑
感谢Eric Darchis,我创建了简单的sh。文件,可以从Groovy脚本运行。
def command = "C:/path/to/putty.exe -ssh user@IP -pw pass"
def proc = command.execute()
proc.waitFor()
在腻子里这个嘘。文件仅写入OTP值:“ 123456”。
但是现在我需要将该值从Putty传递给SOAPUI(Groovy)。而且我不知道“ consumeProcessOutput”是如何工作的。我是否还必须在Shell脚本中编写一些命令? 或者我不得不用Groovy编写类似的东西:
#!/bin/bash
TODAY=`date '+%Y-%m-%d'`
MSISDN="604883196"
OTP=`grep "Your password for phone number: "$MSISDN" is: " /path/to/log/file-"$TODAY".log | rev | cut -c -6 | rev`
echo "$OTP"
sleep 2
我如何将这个值传递给SOAPUI? 谢谢
答案 0 :(得分:0)
您应该在腻子命令行中使用-m local_command_file.sh
。该.sh文件将包含要运行的命令列表,以提取服务器上所需的信息。
要处理命令的输出,可以使用:
proc.consumeProcessOutput(sout, serr)
proc.waitForOrKill(30000)
sout
将包含命令的标准输出,提取您实际需要的信息应该非常简单。