我必须创建一个 SOAPUI 测试用例。
此测试用例命名为:“使用 OTP(一次性密码)登录应用”。
- 首先我发送 POST 请求。
- 然后服务器生成 OTP 并将其发送到电话号码。
- 现在,我需要连接到服务器 (PUTTY) 并找到保存 OTP 的日志。
- 然后我需要将 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/