4

Robot Framework (SSHLibrary.Start Command または Execute Command) によってリモートでスクリプトに SSH 接続して開始するノードがあります。このリモート スクリプトは、外部から隠されている別のノードへの telnet 接続を開始します。この telnet 呼び出しは、ロボットに対するブロッキング イベントのようです。テストの実行に RIDE を使用していますが、動作が停止します。非効率的に停止信号を送信できます。ssh 内で telnet を生成することは可能ですか?

4

3 に答える 3

3

すべてが可能です。

シナリオを次のように説明しましょう: ロボット フレームワークはマシン A で実行されます。テストでは、A が ssh 経由でマシン B に接続され、B が telnet 経由でマシン C に接続されます。

あなたの質問から、テストがスタックするステップが明確ではありません。テストは実際に telnet 接続を確立しますか? telnet プロセスは実際に B で開始されますか?

ここでは、2 つの関連する問題を考慮する必要があります。

1 つ目は、Robot Framework が単一のスレッドでテストを実行することです。これは、キーワードが戻るまでテストが進まないことを意味します。テストの続行中に telnet セッションを開いたままにする場合は、SSHLibrary.start コマンドを使用し、 command を実行しないでください。

2 番目のポイントは、telnet セッションをプログラムで制御することです。Telnet クライアントは、ある種のバッチ実行をサポートする必要があります (たとえば、パスワードを要求したり、入力をフラッシュしたりしません)。テストから C でコマンドを発行できることを確認します。writeキーワードを使用して、C のコマンドをリダイレクトできるはずです。標準入力からコマンドのファイルを cat することで、Telnet クライアントが動作することを確認できます。何かのようなもの

cat commands_for_c.txt | telnet ...to..c...
于 2013-05-01T15:35:53.930 に答える
1

こんにちは、ssh 接続を使用して、次のように Robot Framework で telnet コマンドを送信します。

SSHLibrary.Open Connection    host=***    port=22    timeout=60    alias=ssh    prompt=:~ >
SSHLibrary.Login    username=***    password=***    delay=1s
SSHLibrary.Switch Connection    index_or_alias=ssh
SSHLibrary.Write    lxc-attach -n 0x1018
SSHLibrary.Read Until Prompt
SSHLibrary.Write    telnet 1.2.3.4 2323
SSHLibrary.Read Until    $
SSHLibrary.Write    sendX 1115 1 0 0 0 0
SYSTEM Close SSH Connection
于 2018-09-06T12:31:37.747 に答える