我有一组按测试用例分类的测试数据,我希望有一个测试设置关键字来加载每个测试用例的数据。像这样的东西会起作用:
*** 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库。是否有一个类存储当前测试用例的名称,我可以访问?
答案 0 :(得分:23)
经过一番挖掘后,我在文档中找到了这个: 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}
答案 1 :(得分:2)
此外,还有一个${SUITE NAME}
变量,用于保存主txt文件的名称。
答案 2 :(得分:2)
当在任何测试用例中发生错误,并且您希望使用拆解重命名具有失败的测试名称的屏幕截图文件时,此功能非常有用。
Test Teardown
Take Screenshot ${TEST NAME}.jpeg
Kill Program
确保$ {TEST NAME}没有空格且没有\ /字符,否则RIDE将输出错误,假设是目录而不是文件名。我很努力地找到这个。
答案 3 :(得分:1)
如果您希望套件中的测试用例名称为${TEST_NAME}
,则可以使用${SUITE_NAME}
来获取包含测试用例的文件的名称(通常称为Test Suite)。
答案 4 :(得分:0)
关键字“获取标题”返回当前的测试用例文件名,以下代码对我有用:
const Cart = createStackNavigator({
Cart :{
screen:Cart,
navigationOptions: ({navigation}) => ({
headerTitle:
<Text style={{ textAlign:'center',fontFamily:'circe-bold',fontSize:width / 18,color:'white'}}>CART</Text>
,
headerStyle: {
backgroundColor: '#4f9cdf'
},
})
},
Delivery:{
screen:Delivery,
navigationOptions: ({navigation}) => ({
header:null
})
},
},
{
transitionConfig: getSlideFromRightTransition,
},
);
答案 5 :(得分:0)
就像其他注释和想法一样,如果您想处理文件和更复杂的逻辑并拥有更多控制权,那么最好使用Python编写自定义机器人库。
这样做时,您还可以通过以下方式访问“自动变量”或内置的机器人变量:
from robot.libraries.BuiltIn import BuiltIn
BuiltIn().get_variable_value("${TEST NAME}")