Robot Framework获取当前测试用例的名称

Lor*_*ist 11 robotframework

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

*** 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}
Run Code Online (Sandbox Code Playgroud)

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

*** 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}
Run Code Online (Sandbox Code Playgroud)

基本上,相当于"获取测试用例名称"的是什么?

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

Lor*_*ist 25

经过一番挖掘,我能够在文档中找到它:http: //robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#automatic-variables

有一个内置变量${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}
Run Code Online (Sandbox Code Playgroud)


bra*_*ada 7

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

执行此操作时,您还可以通过以下方式访问“自动变量”或内置机器人变量:

from robot.libraries.BuiltIn import BuiltIn
BuiltIn().get_variable_value("${TEST NAME}")
Run Code Online (Sandbox Code Playgroud)


小智 6

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