Мне нужно создать один тестовый набор 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.
Может кто-нибудь помочь мне, пожалуйста.
Спасибо
EDIT
Благодаря Эрику Дарчису я создал простой ш. файл, который я могу запустить из скрипта 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
В Замазке это ш. Файл записывает только значение OTP: «123456».
Но теперь мне нужно передать это значение из Putty в SOAPUI (Groovy). И я не знаю, как работает «receiveProcessOutput». Должен ли я также написать некоторые команды в сценарии оболочки?
Или я должен был написать что-то вроде этого в groovy:
def sout = new StringBuilder()
def serr = new StringBuilder()
proc.consumeProcessOutput(sout, serr)
proc.waitForOrKill(30000)
И как мне получить это значение в SOAPUI?
Спасибо