robotframework技巧,让一个关键字自动识别所处 在测试架构中的位置

版权声明: https://blog.csdn.net/weixin_41357300/article/details/81103201

如何写一个关键字,让关键字自己判断是在  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  

猜你喜欢

转载自blog.csdn.net/weixin_41357300/article/details/81103201
今日推荐