2017-03-29 6 views
0

RobotFrameworkに関連する質問があります。より正確にファイルを読み込み、別のコマンドでgrepし、辞書に追加してからコマンドをサーバに送信します。ファイルからサーバにコマンドを送信する - robotframework

私は今何を持っているかを教えてください。私は第二の機能は、呼ばれてい

は、コマンドを送信したファイルからサーバに

Send commands from file to server 
    [Arguments] ${COMMANDS_FILE} 
    ${FILE_CONTENT}= Get File ${COMMANDS_FILE} 
    @{LINES}= Split to Lines ${FILE_CONTENT} 
    : FOR ${line} IN @{LINES} 
    \ Send command ${line} 

をコマンドを送るだけで、サーバーにコマンドを送信し、正常に動作するキーワードです。

VAL1;VAL2;VAL3; 
    VAL1;VAL4;VAL5; 
    VAL6;VAL7;VAL8 
    VAL6;VAL7;VAL8 

だから、あなたが見ることができるようにVAL1は、両方の行で同じである:

コマンドファイルは、この(commands.txt)のようになります。

VAL1を取得してどこかに保存し(dictまたはlist)、VAL1を含むファイルからすべてのコマンドを実行するにはどうすればよいですか?

答えて

1

;の各行をさらに分割して、最初に調べるコマンドを確認する必要があります。コードに基づいた方法は次のとおりです。

Send commands from file to server 
    [Arguments] ${COMMANDS_FILE} 
    ${FILE_CONTENT}= Get File ${COMMANDS_FILE} 

    @{LINES}= Split to Lines ${FILE_CONTENT} 
    ${commands to run}=  Create List # will store only the commands you want to run 
    :FOR ${line} IN @{LINES} 
     \ ${members}=  Split String  ${line}  separator=; # each command in the line is a list member now 
     \ Run Keyword If  $members[0] == 'VAL1'  Append To List  ${commands to run}  ${line} 

    :FOR ${command_line}  IN  @{commands to run} 
    \ Send Command ${command_line} 
+0

Hello Todor私は私の質問に間違っていると思う。より正確には、VAL1がファイル内に存在するかどうかをチェックしたい場合は、上記の例のVAL1を含むすべてのコマンド(val2; val3;およびval4 val5を含むフルライン)を実行します。 VAL1; VAL4; VAL5; – Manfeld

+0

@Manfeld - あなたが正しく理解しているかどうかを見てみましょう:まずはVAL1で始まる行にあるすべてのコマンドを収集し、次に2番目に)それらに ";"を付けて送信します。第2の場合、送信するものは一度呼び出す必要がありますが、引数はすべての行からすべてのコマンドを持つ必要がありますか? – Todor

+0

もしそうなら、現在のバージョンは 'VAL1; VAL2; VAL3;'を送り、 'VAL1; VAL4; VAL5;'を送りますが、あなたはただ一つの 'Send Command'を実行したいだけです。引数' VAL1; VAL2; VAL3; VAL4; VAL5; ' – Todor

関連する問題