Подключаюсь с помощью sshlibrary и запускаю mockservicerunner.sh
Проблем в том что mockservicerunner.sh запускает определенный mock service и “слушает”, ждет появления запросов для обработки, обрабатывает их и ждет дальше.
Отличное решение.
Насколько я понял & -запустит процесс в фоне, а $! содержит pid запущенного процесса, который передастся в файл mock.pid.
Но еще одна проблема в том что при старте mockservicerunner запускается 2 процесса(mockservicerunner и java).
В принципе я могу их потом найти и убить поочередно.
Нет, я и так и так пробовал.
Когда я написал mockservicescript.sh:
./mockservicerunner.sh -m “NTFNotificationImplPortBinding MockService” “/home/akukha/SoapUI-4.6.4/NTF-soapui-project_log_final.xml” &
То при его запуске тоже получаю java.io.IOException: Not a typewriter.
Если в mockservicescript.sh убираю & и запускаю :
./mockservicescript.sh &
то в shell все нормально, процесс продолжает работать в фоне, в soapui.log все пишется нормально.
Но если запускаю в роботе:
${stdout}= Execute Command /home/akukha/SoapUI-4.6.4/bin/mockservicescript.sh &
то ничего не происходит, процесс не запускается, в soapui.log ничего не появляется.
Нашел решение, надо было просто использовать другой кейворд, start command, а не execute command:
Вот так все работает:
Start Command ${pathtomockservrunr} \ -m “${mockservname} MockService” ${pathtosoapproject}
${stdout} Execute Command ps -u ${remotesoaplogin} | grep java
should not be empty ${stdout}
${pid} fetch from left ${stdout} ?
${pid} set variable ${pid.strip()}
Потом выполняю
${stdout} Execute Command kill ${pid}
когда надо будет убить процесс.