robotframework ssh connection問題のまとめ

3297 ワード

1、Switch conection後すぐにWriteでcommandを書くとSHH handerが応答しない場合はExcute CommandまたはStart Commandでcommandsを送ってstatusを取得し、その後writeを引き続き使用することができる
2、SSHLibraryのpythonClientのWriteメソッドに異常処理はありません.write_file()増加異常放出
3、Execute CommandパッケージStart CommandとRead output commandは、いくつかのcommandが返信していないか、すぐに応答しないか、またはこのcommandデバイスSSH connection環境が変化し、Execute commandが偽死する場合、Start commandがread output commandを組み合わせないことを考慮し、commandを実行した後すぐに戻るようにしなければならない.
4、pabot同時実行は1つの同時グループあるいはthreadingpoolの中で、実際の観察によると、例えば長兄caseが完成するのに時間がかかり、前後関係があり、使用時間は10~50 secondsで増加し、設備の違い、異なる設備の相応の効率と関係がある可能性がある.
5、pabot同時process数設計:【同時グループにおける設備依存関係に基づいて設定すべき】利用可能な8グループ(シリーズ/クラス)があれば、各グループに2台の設備;実行デバイス数dev_counts<=8/2、同時process数runDevprocess=(dev_counts)*2実行デバイス数dev_counts>=8/2、同時process数runDevprocess=(dev_counts)このようにcaseまたはprocessは、デバイスリソースを獲得またはロックする際に、チェーンロックデバイスが現れず、同時にシリアルになり、時間やデバイスリソースを浪費する.
6、pabot child process競合またはデバイスリソースをロックするtimeoutは、単一のcaseの最悪の消費時間に設定しなければならない.あるcase processがすでに一部のリソースを占有して競合の残りの必要なリソースを待つtimeoutは、poolの実行が完了した後、必要なリソースをすべて競合していない場合でも、占有した一部のデバイスリソースを解放しなければならない.超長timeuoutを考慮したり感性的に決定したりしないと、リソース、時間を浪費する一方で、チェーンロックがトリガーされ、シリアルになり、実行プロセス全体がブロックされたり中断されたりします.
7、pabotはrebot API combinとmerger output.xmlを参照し、Rebotには3種類のインタフェースがあり、API、rebot cli、rebot command、APIにはcombin pabot_が現れる可能性があるresultsのoutput.xmlごとにxml要素が見つかりません.testsuiteのoutput_が原因かもしれません.dir名が原因の1つはpabotデフォルトpabot_resultsの各testsuiteのfolder名はSUITE_NAME、デフォルトでは''スペース'''に変換し、testsuitesレベル間をポイント'.'で分割すると、システムファイル管理メカニズムでファイルとフォルダが混同される可能性があります【この場合、rebot commandを使用すると必ずファイル(ファイル名がファイル名として扱われている)が見つからない場合があり、rebot cliの実行状況はrebot APIと同じです】この場合、windows環境では(他のシステム環境も存在する場合があります)ファイル名は最長255個のunicodeバイトで、ファイル名は後ろから前へ1番目の'.'は名前と拡張子に分割され、フォルダ名は'.'ではない.したがって、pabotのpabot_resultsのcaseごとのouts_dirパス名をcase名に変更し、スペース'''を'-'または他の異常を起こさない文字に置き換える.
8、pabotではchild processは受動的に戻ってくるのを待っているので、caseが長くて中断しやすい場合は他の中断が鳴らない処理を考慮する
9、Switch Connectionを使用するとconnection AからNew connection Bに切り替わり、すぐにWriteを使用して文字列コマンドを送信するとWrite異常が発生し、pythonclient.pyに異常処理を追加すると異常が放出されます.SSH Connection is not active or connection not open or connection closedの場合、Start Commandを使用するとExecute Commandからエラーが放出されます.この場合、Run Keyword And Ignore Errorを使用して異常をキャプチャし、異常メッセージに従って後続処理を行うことができ、Run Keyword And Except Errorを使用して異常をキャプチャすることができるが、異常情報を理解し、bool値を返すことを実現するには、後続処理が困難である.
10、いくつかの設備の不安定型に対して、結局絶えない異常回復処理の中から明らかにすることができて、問題のように、DUTの問題がWrite、Start Command、Execute CommandなどRun Keywordによって実行されて戻ってきた1つのtubleオブジェクト:([status],[info])に対して説明するのに十分で、[Info]の異なる内容によって、処理異常を区別することができる;また[Status]によってCommandが失敗した場合を一度に処理します.
KEYWORD SSHLibrary . Execute Command cat/proc/net/arp Documentation: Executes command on the remote machine and returns its outputs. Start/End/Elapsed: 20170802 14:17:14.540/20170802 14:17:14.556/00:00:00.016 14:17:14.540 INFO Executing command ‘cat/proc/net/arp’.
14:17:14.556 FAIL error: [Errno 10054] An existing connection was forcibly closed by the remote host
14:17:14.556 INFO ${currLinkStat} = FAIL
14:17:14.556 INFO ${currLinkInfo} = error: [Errno 10054] An existing connection was forcibly closed by the remote host
「あなたが見ているのは他人があなたに見せたもので、なぜあなたに見せたのかという動機と原因を考えています.正しい人を探して、正しいことを言って、正しいことをします.」