1.变量文件

变量文件包含可以在测试数据中使用的变量。

也可以使用变量表创建变量,也可以从命令行设置变量,但是变量文件允许 动态 创建变量,并且变量可以包含任何对象。

2.在资源文件Variables表中定义变量

1)首先要创建Variables表 

例如:在同级目录test3.robot资源文件中定义如下内容:

*** Settings ***
Library  SeleniumLibrary
​
*** Keywords ***
百度搜索京东
    [Documentation]  打开百度然后搜索京东
    #定义了连个形参
    [Arguments]  ${url}  ${browser}
    [Tags]  mytag
    [Timeout]  5
    open browser  ${url}  ${browser}
    input text  id=kw  京东
    click element  id=su
    close browser
    #返回值
    [Return]  搜索京东成功!!!
​
*** Variables ***
#字符串变量
${weburl}  http://www.baidu.com
#定义列表变量
@{list1}       127.0.0.1            3306
#定义字典变量,注意要使用&
&{dict1}    name=王八蛋   age=18

2)使用资源文件中创建的变量

例如:在test4.robot中使用资源文件test3.robot中定义的变量

*** Settings ***
#导入资源文件
Resource    test3.robot
​
*** Test Cases ***
case01
    log to console    ${weburl}         #输出字符串变量所对应的值
    log to console    ${list1}[0]       #输出列表变量下标为0的元素
    log to console    ${dict1}[age]     #输出字典变量,键为age所对应的值

3.使用Python模块文件提供公共变量给RF使用

只需要直接定义导入模块即可使用,语法完成就是python中的语法

1)在python模块文件中定义变量

例如:在同一目录下hello.py中定义了如下变量

url = 'http://localhost/mgr/login/login.html'
loginDict = {"name":"Augus","password":"123456"}
namelist = ["tom","roy","auguse"]

2)导入的python模块文件hello.py中的变量

在套件文件test5.robot中导入hello.py中的变量,并且使用它

*** Settings ***
#引入python文件中的变量时,必须使用Variables
Variables  hello.py
​
*** Test Cases ***
case06
    #注意使用python模块文件中的时候,格式如下:${url} 不需要在考虑数据类型,、
    #老版本规则:@列表变量  &字典变量,目前新版本均已废除
    log to console     ${url}
    log to console     ${namelist}[0]
    log to console     ${loginDict}[name]

注意:

  • 声明变量如果在其父目录的同级子目录中,则导入时写成:Variables ../results/cfg.py

  • 变量文件声明的时候,可以使用绝对路径,也可以使用相对路径。

  • 使用相对路径的时候,Robot Framework搜索规则和资源文件搜索规则一样

    先在相对当前文件的目录匹配搜索

    在Python的模块搜索路径中搜索,可以用--pythonpath参数

  • 命令行参数指定变量文件

    robot --variablefile cfg\cfg.py tc\t1.robot