从SOAPUI访问服务器(PUTTY)上的日志

时间:2018-11-06 09:17:01

标签: linux groovy ssh soapui putty

我必须创建一个SOAPUI测试用例。

此测试用例名为:“使用OTP(一次性密码)登录应用程序”。

  1. 首先,我发送POST请求。
  2. 然后服务器生成OTP并将其发送到电话号码。
  3. 现在,我需要连接到服务器(PUTTY)并找到保存OTP的日志。
  4. 然后我需要将OTP插入下一个POST请求。

我创建了简单的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? 谢谢

1 个答案:

答案 0 :(得分:0)

您应该在腻子命令行中使用-m local_command_file.sh。该.sh文件将包含要运行的命令列表,以提取服务器上所需的信息。

要处理命令的输出,可以使用:

proc.consumeProcessOutput(sout, serr)
proc.waitForOrKill(30000)

sout将包含命令的标准输出,提取您实际需要的信息应该非常简单。