Robot Framework:如何动态构建拆解
Robot Framework: How to build teardown dynamically
我正在尝试在我的测试用例中动态构建拆卸操作。例如对于测试用例中的每一步,我都有一个相应的拆卸步骤。因此,根据测试用例失败的时间点,我试图 运行 仅在拆解中执行那些干净的操作。
我希望像下面这样的东西能工作(不幸的是 Run Keywords
需要在语法中特别提到 AND
)
*** Settings ***
Library Collections
*** Test Cases ***
Sample Test1
${Cleanup KWS}= Create List Log Cleanup Step1
Log Test Step1
${Cleanup KW}= Create List Log Cleanup Step2 AND
${Cleanup KWS}= Combine Lists ${Cleanup KW} ${Cleanup KWS}
Log Test Step2
${Cleanup KW}= Create List Log Cleanup Step3 AND
${Cleanup KWS}= Combine Lists ${Cleanup KW} ${Cleanup KWS}
Log Test Step3
[Teardown] Run Keywords @{Cleanup KWS}
如果可以的话,测试用例的执行可能会更有效率(如果中间测试失败)and/or我可以避免在拆解阶段出现不必要的失败。
是否有任何其他优雅的方式来支持上述所需的行为?
您可以通过在 Keywords
部分中定义每个拆卸步骤来执行此操作:
*** Keywords ***
Teardown_Step_1
log to console Teardown for step 1
Teardown_Step_2
log to console Teardown for step 2
Teardown_Step_3
log to console Teardown for step 3
Execute teardown steps
[Documentation] Execute a list of keywords
[Arguments] @{keywords}
[Return] @{result}
@{result}= create list
FOR ${keyword} IN @{keywords}
${keyword result}= Run keyword ${keyword}
Append to list ${result} ${keyword result}
END
然后在测试中你可以像这样使用上面的关键词:
Sample Test1
@{teardown_list} = create list
Log Test Step1
append to list ${teardown_list} Teardown_Step_1
Log Test Step2
append to list ${teardown_list} Teardown_Step_2
Log Test Step3
append to list ${teardown_list} Teardown_Step_3
[Teardown] Execute teardown steps @{teardown_list}
我正在尝试在我的测试用例中动态构建拆卸操作。例如对于测试用例中的每一步,我都有一个相应的拆卸步骤。因此,根据测试用例失败的时间点,我试图 运行 仅在拆解中执行那些干净的操作。
我希望像下面这样的东西能工作(不幸的是 Run Keywords
需要在语法中特别提到 AND
)
*** Settings ***
Library Collections
*** Test Cases ***
Sample Test1
${Cleanup KWS}= Create List Log Cleanup Step1
Log Test Step1
${Cleanup KW}= Create List Log Cleanup Step2 AND
${Cleanup KWS}= Combine Lists ${Cleanup KW} ${Cleanup KWS}
Log Test Step2
${Cleanup KW}= Create List Log Cleanup Step3 AND
${Cleanup KWS}= Combine Lists ${Cleanup KW} ${Cleanup KWS}
Log Test Step3
[Teardown] Run Keywords @{Cleanup KWS}
如果可以的话,测试用例的执行可能会更有效率(如果中间测试失败)and/or我可以避免在拆解阶段出现不必要的失败。
是否有任何其他优雅的方式来支持上述所需的行为?
您可以通过在 Keywords
部分中定义每个拆卸步骤来执行此操作:
*** Keywords ***
Teardown_Step_1
log to console Teardown for step 1
Teardown_Step_2
log to console Teardown for step 2
Teardown_Step_3
log to console Teardown for step 3
Execute teardown steps
[Documentation] Execute a list of keywords
[Arguments] @{keywords}
[Return] @{result}
@{result}= create list
FOR ${keyword} IN @{keywords}
${keyword result}= Run keyword ${keyword}
Append to list ${result} ${keyword result}
END
然后在测试中你可以像这样使用上面的关键词:
Sample Test1
@{teardown_list} = create list
Log Test Step1
append to list ${teardown_list} Teardown_Step_1
Log Test Step2
append to list ${teardown_list} Teardown_Step_2
Log Test Step3
append to list ${teardown_list} Teardown_Step_3
[Teardown] Execute teardown steps @{teardown_list}