Robot Framework 获取当前测试用例的名称
Posted
技术标签:
【中文标题】Robot Framework 获取当前测试用例的名称【英文标题】:Robot Framework get name of current test case 【发布时间】: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 库。是否有一个类可以存储我可以访问的当前测试用例的名称?
【问题讨论】:
【参考方案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
【讨论】:
你确定吗?当我调用Get Title
时,它会给我 Selenium robotframework.org/Selenium2Library/…,它返回当前网页标题。以上是关于Robot Framework 获取当前测试用例的名称的主要内容,如果未能解决你的问题,请参考以下文章
是否可以为 Robot Framework 中所有测试用例中使用的最失败的关键字创建报告?