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

标签 linux groovy ssh soapui putty

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

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

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

我创建了简单的 Groovy 脚本作为 SOAPUI 测试步骤,它在 PUTTY 中打开连接。

def command = "C:/path/to/putty.exe -ssh user@IP -pw pass"
def proc = command.execute()
proc.waitFor()

然后我需要在 PUTTY 中编写一些命令并从日志文件中获取 OTP 变量。

但我不知道如何通过 Groovy 脚本执行命令。

谁能帮帮我,拜托。 谢谢

编辑

感谢 Eric Darchis,我创建了简单的 sh。文件,我可以从 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​

在 Putty 中这个 sh。文件只写入 OTP 值:“123456”。

但现在我需要将该值从 Putty 传递到 SOAPUI (Groovy)。而且我不知道“consumeProcessOutput”是如何工作的。我还必须在 shell 脚本中编写一些命令吗? 或者我必须用 groovy 编写类似的东西:

def sout = new StringBuilder()
def serr = new StringBuilder()
proc.consumeProcessOutput(sout, serr)
proc.waitForOrKill(30000)

我如何为 SOAPUI 获取该值? 谢谢

最佳答案

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

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

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

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

关于linux - 从 SOAPUI 访问服务器 (PUTTY) 上的日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53168861/

相关文章:

c++ - 在 Windows 上以 float 方式额外打印 0

javascript - 如何在HTML表格中显示二维数组JSON对象的内容

java - groovy xml解析函数

windows - 使用公钥身份验证为 Windows 设置 OpenSSH

Git 在执行 Hook 时不识别存储库

linux awk比较两个csv文件并创建一个带有标志的新文件

linux - pidof -x $0 返回 2 而不是预期的 1,是否有单行替代方案?

linux - 从 bash 脚本将变量重新导出到环境

grails - URLMapping将所有请求定向到单个 Controller /操作

java - 在我正在连接的服务器上跟踪日志并在网页上动态显示