我有一个与RobotFramework相关的问题,更准确地说是读取一个文件,grep它用于不同的命令,将它们添加到字典中,然后将它们命令发送到服务器。
让我告诉你我现在有什么。
我有第二个函数,称为将命令从文件发送到服务器
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}
发送命令是一个工作正常的关键字,只是将命令发送到服务器。
命令文件如下所示(命令.txt(:
VAL1;VAL2;VAL3;
VAL1;VAL4;VAL5;
VAL6;VAL7;VAL8
VAL6;VAL7;VAL8
因此,如您所见,VAL1 在两行上都是相同的。
如何获取 VAL1并将其保存在某个地方(字典或列表(,然后从包含 VAL1 的文件运行所有命令?
您必须进一步拆分每一行 - 在;
上,检查是您查找的第一个命令。以下是基于您的代码的方法:
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}