SSHLibrary — сценарий оболочки с аргументами завершается с кодом 127 и ошибкой «java: команда не найдена»

#unix #ssh #robotframework

#unix #ssh #robotframework

Вопрос:

Используя автоматизацию Robotframework с библиотекой ssh, я пытаюсь выполнить сценарий оболочки с одним аргументом (-a) в удаленном окне UNIX

Этапы тестирования следующие:

  1. Войдите в окно UNIX
  2. Перейдите в каталог, в котором присутствует сценарий оболочки с аргументом (-a)
  3. Выполните сценарий оболочки

Пожалуйста, обратите внимание:

  1. Поскольку ключевые слова «SSHLibrary», такие как «Выполнить команду» или «Запись» и «Чтение», работают в одной оболочке, я передаю несколько команд, разделенных точкой с запятой
  2. В серии команд я также попытался включить оболочку с помощью command shopt login_shell , но это тоже не сработало. Также обратите внимание, что команда shopt login_shell не включается в оболочку при выполнении с ключевым словом ‘Execute command’. Он отлично работает с ключевым словом ‘Write’
  3. Следующая команда для проверки, загружена ли 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 не так важно).