Robotframework telnet timeout

robotframework
本ページはプロモーションが含まれています

はじめに

RobotframeworkでTelnetを使い自動化を行っていました。
そこでTimeout値を変更する必要がありました。

SSHでのTimeout値の設定と方法が違ったのと、ネットに情報が少ないので今回メモに残すことにしました。

サンプルソース

サンプルではCisco装置にTelnetで接続し、Timeout値を変更している例です。
Timeoutは変更しない場合ではデフォルトで3秒となります。
Telnet接続部分を含め一部割愛してますがご了承下さい。

*** Test Cases ***
開始~ログイン
Telnet接続を行う ${IP_ADD} ${USER_NAME} ${PASSWORD}

enableコマンド
    Write enable
    Sleep 1
    Write ${PASSWORD}

ログ表示でmoreを出さない
    Write terminal length 0

show running-configコマンド実行1
    Set Prompt R1>
    Write show running-config
    Set Timeout 10 seconds
    ${output}= Read Until Prompt
    Log To Console ${\n}${output}

show running-configコマンド実行2
    Write show running-config
    Set Timeout 20 seconds
    ${output}= Read Until Prompt
    Log To Console ${\n}${output}

うまく接続出来るとTimeout値が変更されているか分かりませんが、例であるようにRead Until PromptなどでPromptで指定した文字列がない場合(enableまでログイン出来ると「R1>」ではなく「R1#」になる)では、実際Timeout値が変更されている事が確認できます。

これを実行すると

==============================================================================
開始~ログイン
R1にログインしました
開始~ログイン | PASS |
------------------------------------------------------------------------------
enableコマンド | PASS |
------------------------------------------------------------------------------
ログ表示でmoreを出さない | PASS |
------------------------------------------------------------------------------
show running-configコマンド実行1 | FAIL |
Prompt 'R1>' not found in 10 seconds.
------------------------------------------------------------------------------
show running-configコマンド実行2 
show running-configコマンド実行2 | FAIL |
Prompt 'R1>' not found in 20 seconds.
------------------------------------------------------------------------------
Cisco Telnet Session | FAIL |
5 tests, 3 passed, 2 failed
==============================================================================

show running-configの1と2でタイムアウトの値が異なる事がわかると思います。
Timeout値はソースコードにある通り、都度変更できます。
「Set Timeout 20 seconds」のようにminuteやsecondsといった分秒の表示が必要なのでその点はご注意。
2分10秒ならば「Set Timeout 2 minute 10 seconds」となります。

さいごに

今回はRobotframeworkのTelnetでのTimeout値の変更の仕方でした。
例ではCiscoとしましたが他の装置でも同じです。

接続先の装置によってはタイムアウトの時間を長く設定しないといけない場合もあると思います。
コマンドごとに変更できるので用途に分けて使うのが良いかもしれません。

この記事がお役に立ったのならば嬉しいです。
最後までお読みいただきありがとうございました。

タイトルとURLをコピーしました