【问题标题】:Robot Framework get name of current test caseRobot Framework 获取当前测试用例的名称
【发布时间】:2014-05-08 07:54:54
【问题描述】:

我有一组按测试用例分类的测试数据,我想要一个测试设置关键字来加载每个测试用例的数据。像这样的东西会起作用:

*** Keywords ***
Load Test Data
    [Arguments]  ${test case name}
    ${data}=  Get File  ${test case name}.txt
    Set Test Variable  ${data}  ${data}

*** Testcases ***
First Test
    Load Test Data  First Test
    Log  ${data}

Second Test
    Load Test Data  Second Test
    Log  ${data}

但是,最好不必在每个测试用例的开头包含“加载测试数据”关键字。是否有一个关键字可以获取测试用例的名称,所以我可以在“加载测试用例”中调用它并使其成为测试设置关键字,就像这样?

*** Settings ***
Test Setup  Load Test Data

*** Keywords ***
Load Test Data
    ${test case name}=  Get Test Case Name
    ${data}=  Get File  ${test case name}.txt
    Set Test Variable  ${data}  ${data}

*** Testcases ***
First Test
    Log  ${data}

Second Test
    Log  ${data}

基本上,“获取测试用例名称”的等价物是什么?

如果不能使用 Robot Framework 关键字轻松完成,我不介意用 Python 弄脏我的手。如有必要,我可以将“加载测试数据”创建为 Python 库。是否有一个类可以存储我可以访问的当前测试用例的名称?

【问题讨论】:

    标签: robotframework


    【解决方案1】:

    经过一番挖掘,我在documentation找到了这个:

    有一个内置变量${TEST NAME},所以我的测试用例看起来像:

    *** Settings ***
    Test Setup  Load Test Data
    
    *** Keywords ***
    Load Test Data
        ${data}=  Get File  ${TEST NAME}.txt
        Set Test Variable  ${data}  ${data}
    
    *** Testcases ***
    First Test
        Log  ${data}
    
    Second Test
        Log  ${data}
    

    【讨论】:

      【解决方案2】:

      此外,还有一个 ${SUITE NAME} 变量保存了主 txt 文件的名称。

      【讨论】:

        【解决方案3】:

        你可以使用${TEST_NAME}如果你想要一个套件中的测试用例的名称,${SUITE_NAME}来获取包含测试用例的文件的名称(通常称为测试套件)。

        【讨论】:

          【解决方案4】:

          就像附加评论和想法一样,如果您想处理文件和更复杂的逻辑,拥有更多控制权,用 Python 编写您的自定义机器人库可能是个好主意。

          这样做时,您还可以通过这种方式访问​​“自动变量”或内置机器人变量:

          from robot.libraries.BuiltIn import BuiltIn
          BuiltIn().get_variable_value("${TEST NAME}")
          

          【讨论】:

            【解决方案5】:

            当任何测试用例发生错误,并且您想使用 Teardown 将屏幕截图文件重命名为失败的测试名称时,此功能很有用。

            Test Teardown
            
                Take Screenshot     ${TEST NAME}.jpeg
                Kill Program
            

            确保 ${TEST NAME} 中没有空格和 \ / 字符,否则 RIDE 将输出错误,假设是目录而不是文件名。我费了好大劲才找到这个。

            【讨论】:

              【解决方案6】:

              关键字“获取标题”返回当前测试用例文件名,以下代码适用于我:

              Load Test Data
                  ${title}=   get title
                  Set Test Variable   ${data}     ${title}
                  Log  ${data}
              

              【讨论】:

              猜你喜欢
              • 2016-05-04
              • 1970-01-01
              • 2016-05-05
              • 2012-09-26
              • 2020-07-12
              • 1970-01-01
              • 2015-11-19
              • 2018-06-18
              • 2014-02-27
              相关资源
              最近更新 更多