如何写一个关键字,让关键字自己判断是在 suitesetup testsetup test testteardown suiteteardown的哪个里面呢
有些场景,我们希望简化使用,在以上5个阶段,使用相同的关键字,关键字自行根据所在位置,执行不同的动作;减少写脚本时自行判断的工作量
例如一个统一得的关键字,叫做 ”执行“”:
在suite_setup自动调用 分支 执行_suite_setup
在suite_setup自动调用 分支 执行_suite_setup
自动化脚本简化为:多清爽
*** Settings ***
Suite Setup 执行
Suite Teardown 执行
test1
执行
[Teardown] 执行
以下是思考方式和实现:就是根据状态+各种suite和test的当前信息的组合来判断
目前test_setup和test执行过程,无法区分,有思路的有同学请告知
${测试套件信息状态_元组格式}= Run Keyword And Ignore Error log ${SUITE_MESSAGE}
${测试用例信息状态_元组格式}= Run Keyword And Ignore Error log ${TEST_MESSAGE}
${测试套件名字_元组格式}= Run Keyword And Ignore Error log ${SUITE_NAME}
${测试用例名字_元组格式}= Run Keyword And Ignore Error log ${TEST_NAME}
Comment ${测试用例状态_元组格式}= Run Keyword And Ignore Error log ${TEST_STATUS}
${测试套件信息状态}= Get From List ${测试套件信息状态_元组格式} 0
${测试套件名字}= Get From List ${测试套件名字_元组格式} 0
${测试用例信息状态}= Get From List ${测试用例信息状态_元组格式} 0
${测试用例名字}= Get From List ${测试用例名字_元组格式} 0
Comment ${测试用例状态}= Get From List ${测试用例状态_元组格式} 0
${用例执行阶段}= Set Variable ${测试套件信息状态}${测试套件名字}${测试用例信息状态}${测试用例名字}
Run Keyword And Return If "${用例执行阶段}"=="FAILPASSFAILPASS" test(setup&test)
Run Keyword And Return If "${用例执行阶段}"=="FAILPASSPASSPASS" test_teardown
Run Keyword And Return If "${用例执行阶段}"=="FAILPASSFAILFAIL" suite_setup
Run Keyword And Return If "${用例执行阶段}"=="PASSPASSFAILFAIL" suite_teardown