在变量定义中使用变量

时间:2015-04-21 12:57:33

标签: robotframework

我试图将变量变为变量,但它不起作用。我搜索谷歌并尝试了很多东西,但它没有解决 我希望这个问题不是“愚蠢的”:
我做错了什么?

*** Settings ***
Library           SeleniumLibrary
Library           OperatingSystem

*** Variable ***
${year}           Get Time    return year
${month}          Get Time    return month
${day}            Get Time    return day
${output}         ${CURDIR}\Testing\Tests\SRV\csdb_@{year}-@{month}-@{day}.log

*** Testcases ***    
Textfile should have a line saying the service is started
    ${errors} =    Grep File    ${output}    Test

1 个答案:

答案 0 :(得分:2)

来自robot framework user's guide

  

变量最常见的来源是测试用例中的变量表   文件和资源文件。变量表很方便,因为它们   允许在与测试的其余部分相同的位置创建变量   数据,所需的语法非常简单。 他们的主要缺点   是值始终是字符串,无法创建它们   动态。

为了做你想做的事,你需要在关键字中定义变量。例如:

*** Keywords ***
Get Output
    ${year}=      Get Time    year
    ${month}=     Get Time    month
    ${day}=       Get Time    day
    ${output}=    Set variable    ${CURDIR}/Testing/Tests/SRV/csdb_${year}-${month}-${day}.log
    [Return]      ${output}


*** Testcases ***    
Textfile should have a line saying the service is started
    ${output}=     Get Output
    ${errors} =    Grep File    ${output}    Test

注意:您可以通过一次调用关键字来获取数据的所有三个部分,如下所示:

${year}  ${month}  ${day}=  Get Time    year month day

使用空格分隔格式读取有点困难,但变量名称必须用两个或多个空格分隔,但是"年月日"应该只有一个。