Робот получает вывод команды Telnet.Execute внутри SSH-соединения - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь получить вывод Telnet.Execute Command, мое telnet-соединение находится внутри SSH-соединения.

Если я попытаюсь ${saida}= SSHLibrary.Execute Command ls, я могу получить вывод команды ls, ноесли я попытаюсь ${saida}= SSHLibrary.Execute Command Telnet.Execute Command dir, я ожидал, что вывод dir [в команде Telnet.Execute Command] был передан SSHLibrary.Execute Command, но это не так.

Как я могу получить выводTelnet.Execute Command?

Library                SSHLibrary
Library                Telnet
Suite Setup            Open Connection And Log In
Suite Teardown         SSHLibrary.Close All Connections

*** Variables ***
${HOST}                OMITTED.70
${Other-Host}            OMITTED.1
${OTHER-USERNAME}        OMITTED
${OTHER-PASSWORD}        OMITTED
${USERNAME}            OMITTED
${PASSWORD}            OMITTED



*** Test Cases ***

Acessando OLT para testes
    SSHLibrary.Execute Command  Telnet.Open Connection  ${Other-Host}
    SSHLibrary.Execute Command  Telnet.Login  ${OTHER-USERNAME}     ${OTHER-PASSWORD}  password_prompt=password

Verificando a saída do terminal
    ${saida}=  SSHLibrary.Execute Command   Telnet.Execute Command  dir
    BuiltIn.Log to console  ${saida}

*** Keywords ***
Open Connection And Log In
   SSHLibrary.Open Connection     ${HOST}
   SSHLibrary.Login               ${USERNAME}        ${PASSWORD}

1 Ответ

1 голос
/ 10 мая 2019

Из комментариев:

Мне удалось использовать telnet внутри ssh-соединения, но я хочу использовать библиотеку Telnet

Вы не можете этого сделать по двум причинам.

Во-первых, библиотека Telnet (как и почти все RF-библиотеки, о которых я могу думать) предназначена для локального использования - когда вы запускаете ваши дела, она создается на вашей локальной машине и в локальном интерпретаторе python. Все вызовы, которые вы делаете к нему (lib), выполняются на локальной машине.
Таким образом - он не будет запущен на машине, к которой вы подключились через ssh.

Другая причина в том, что Robot Framework не поддерживает передачу в качестве аргументов "возвращаемого значения другого ключевого слова"; например если вы хотите сделать это, вы должны сохранить возвращаемое значение из этого другого ключевого слова во временной переменной и передать его первому ключевому слову.
Другими словами, в этой строке:

SSHLibrary.Execute Command  Telnet.Open Connection  ${Other-Host}

, вы фактически передаете строки "Telnet.Open Connection" и значение ${Other-Host}, вы не вызываете ключевое слово Telnet.Open Connection.

...