#unix #ssh #robotframework
#unix #ssh #robotframework
Вопрос:
Используя автоматизацию Robotframework с библиотекой ssh, я пытаюсь выполнить сценарий оболочки с одним аргументом (-a) в удаленном окне UNIX
Этапы тестирования следующие:
- Войдите в окно UNIX
- Перейдите в каталог, в котором присутствует сценарий оболочки с аргументом (-a)
- Выполните сценарий оболочки
Пожалуйста, обратите внимание:
- Поскольку ключевые слова «SSHLibrary», такие как «Выполнить команду» или «Запись» и «Чтение», работают в одной оболочке, я передаю несколько команд, разделенных точкой с запятой
- В серии команд я также попытался включить оболочку с помощью command
shopt login_shell
, но это тоже не сработало. Также обратите внимание, что командаshopt login_shell
не включается в оболочку при выполнении с ключевым словом ‘Execute command’. Он отлично работает с ключевым словом ‘Write’ - Следующая команда для проверки, загружена ли JAVA в оболочку автоматизации, возвращает правильный вывод (путь к JAVA).
Напишите $JAVA_HOME $ {Op_java}= Read
- Проблема:
Следующий шаг тестирования robotframework после входа в окно UNIX завершается с кодом выхода 127 и ошибкой «java: команда не найдена»
Метод 1, который я пробовал:
Write shopt login_shell
${Op_Shopt}= Read
${Op_rc} ${Op_err}= Execute Command cd /home/xyz/abc; ./shell_script.sh -a return_stderr=True
Здесь login_shell включен, но где-то внутри сценария оболочки ключевое слово Execute Command завершается с кодом 127 и ошибкой «java: команда не найдена»
Метод 2, который я пробовал:
Write shopt login_shell; cd /home/xyz/abc; ./shell_script.sh -a
${Op_shell}= Read
Здесь login_shell НЕ включен, и даже здесь ключевое слово Execute Command завершается с кодом 127 и ошибкой «java: команда не найдена».
Как упоминалось ниже, я также попробовал тот же подход с ключевым словом «Start Command», но все та же проблема.
Start Command shopt login_shell; cd /home/xyz/abc; ./shell_script.sh -a
${Op_rc} ${Op_err}= Read Command Output return_stderr=True
Может кто-нибудь, пожалуйста, помочь мне решить эту проблему?
Комментарии:
1. не могли бы вы предоставить тестовый пример, который вы выполняете? пожалуйста, используйте
code
форматирование для лучшей читаемости. Проблема где-то в вашей логике.2. Библиотека SSH открывает новую оболочку (без поиска какого-либо файла профиля) для каждой команды запуска или ключевого слова команды выполнения. Поэтому попробуйте добавить «source ~/.bash_profile» или «source ~/.bashrc» в команду, так как, вероятно, это установит переменную $PATH (JAVA_HOME не так важно).