Robot Framework自动化测试教程-基础知识-变量3-内置变量(Built-In Variable)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Snailandfish/article/details/82422378

4. 内置变量

Robot Framework提供了一些不用创建就可以使用的内置变量。主要有环境变量相关变量、操作系统相关变量、数字变量、Boolean和None/Null变量、空格和空变量、其他内置变量。


4.1. 环境变量

Robot Framework允许在测试数据中使用环境变量,仅限于字符串值,语法表示为%{ENV_VAR_NAME}
在操作系统中设置的环境变量在测试执行的时候是可用的,并且可以使用OperatingSystem库中的关键字Set Environment Variable创建新的环境变量或使用关键字Remove Environment Variable删除现有变量。
环境变量是全局变量,在一个测试用例中设置的环境变量,可以用在其后执行的其他测试用例中,测试执行后,对环境变量的更改无效。
认识一下操作系统环境变量:
右键点击“我的电脑”–>“属性”–>“高级系统设置”–>“环境变量”:
这里写图片描述

示例1:打印已有环境变量中的“OneDrive”、“JAVA_HOME”、“ComSpec”
代码;

*** Test Cases ***
Env_Variables
    Log    %{OneDrive}
    Log    %{ComSpec}
    Log    %{JAVA_HOME}

RIDE中显示:
这里写图片描述
运行结果:结果显示可以获取系统变量值。
这里写图片描述

示例2:使用OperatingSystem库中的Set Environment VariableRemove Environment Variable关键字创建和删除环境变量
先在测试套件中引入OperatingSystem库。
点击测试套件,点击“Library”,在弹出的对话框中输入“OperatingSystem”,点击OK:
这里写图片描述

代码情况:

*** Settings ***
Library           OperatingSystem

*** Test Cases ***
Env_Variables2
    Set Environment Variable    env_name_var    增加环境变量    #创建新的环境变量
    Log    %{env_name_var}
    Remove Environment Variable    env_name_var    #移除已有的环境变量
    Remove Environment Variable    JAVA_HOME    #移除现有的环境变量
    Log    %{JAVA_HOME}
Log    %{env_name_var}

RIDE中显示:
这里写图片描述

运行结果:
这里写图片描述
运行结果显示创建和删除变量都成功。


4.2. 操作系统相关变量

Robot Framework内置一些与操作系统相关的变量,使测试数据与操作系统无关。
可用的操作系统相关的内置变量如下所列:

  • ${CURDIR}:测试数据文件所在目录的绝对路径,该参数是大小写敏感的
  • ${TEMPDIR}:操作系统临时目录的绝对路径,在类 Unix 系统中,该路径通常是 /tmp;在 Windows 系统中,通常是 c:\Documents and Settings\\Local Settings\Temp
  • ${EXECDIR}:到测试开始执行的目录的绝对路径
  • ${/}:操作系统文件路径分隔符,在类 Unix 系统中为: ‘/’, 在 Windows 中则为: ‘\’
  • ${:}:操作系统路径元素分隔符,在类 Unix 系统中为: ‘:’,在 Windows 中则为: ‘;’
  • ${\n}:操作系统行分隔符,在类 Unix 系统中为: ‘\n’,在 Windows 中则为: ‘\r\n’

示例:
1)打印出测试文件所在绝对路径
2)打印操作系统临时文件的绝对路径
3)打印开始测试执行的目录绝对路径
4)应用“/”在测试文件所在绝对路径创建txt文件
5)应用“${\n}”验证换行操作

代码:

System_Variables
    Log    ${CURDIR}    #测试文件所在绝对路径
    Log    ${TEMPDIR}    #操作系统临时文件的绝对路径
    Log    ${EXECDIR}    #开始测试执行的目录绝对路径
    Create File    ${CURDIR}${/}input.txt    在测试文件所在目录下创建文件
Log    Some text here${\n}on two lines.    #换行表示

RIED中表示:
这里写图片描述

运行结果:
这里写图片描述
成功创建文件
这里写图片描述


4.3. 数字变量

通常情况下,Robot Framework中所有的字符都会被当做字符串。如果想让它直接以数值方式存在,就可以使用数字变量了。
数字变量可以用于创建整数和浮点数,当关键字期望获取实际数值,而不是看起来像数值得字符串时,就非常有用了。
示例:
1) 创建科学计数的浮点数-0.0001
2) 创建包含数值变量的List变量
3) 打印11的二进制数字变量
4) 打印8的八进制数字变量
5) 打印255十六进制数字变量
6) 打印10的二进制和十六进制数字变量

代码;

Number_Variable
    ${Num_xx}    Set Variable    ${-1e-4}    #创建科学计数的浮点数-0.0001
    @{Number_Var}    Create List    ${3.33}    ${6.66}    #创建包含数字变量的List变量
    Log    ${0b1011}    #二进制11
    Log    ${0o10}    #八进制8
    Log    ${0xff}    #十六进制255
    Log Many    ${0B1010}    ${0XA}    #10的二进制十六进制表示

RIDE表示:
这里写图片描述
运行结果:
这里写图片描述


4.4. Boolean和None/Null变量

表示布尔值的语法:${true}${false}
表示Python的none值:${none}
表示Java的null值:${null}
这些变量不区分大小写,例如${true}${TRUE}是等效的。${None}${null}是同义词,因为在Jython解释器上运行测试时,Jython会在必要的时候自动转换None和Null使用的正确格式。


4.5. 空格(SPACE)变量和空(EMPTY)变量

可以分别使用 ${SPACE}${EMPTY} 来创建空格和空字符串变量。这些变量很有用,如果不使用这些变量的话,就需要对空格或空单元格进行转义。如果需要一个以上的空格,也可以使用扩展变量语法来轻易获得,形如:${SPACE * 5}。下面的例子中,Should Be Equal关键字得到的参数值是相等的,但很明显使用变量的方式比使用 ‘\’ 转义的方式更易理解。
还有空List变量(@{EMPTY})和空Dictionary变量(&{EMPTY})。因为他们没有有意义的内容,如果它们在测试数据中的某个地方使用,基本上都会消失。只有当使用不带参数的template关键字或覆盖不同作用域范围的列表或字典时才有用,在测试模板中的应用很有用。
示例:
1) 一个空格的2种表示
2) 4个空格的2种表示
3) 10个空格的2种表示
4) 引用空格的2种表示
5) 引用空格的另外表示
6) 空的2种表示

代码:

*** Test Cases ***
Space_Variable
    Should Be Equal    ${SPACE}    \ \    #一个空格
    Should Be Equal    ${SPACE*4}    \ \ \ \ \    #4个空格
    Should Be Equal    ${SPACE*10}    \ \ \ \ \ \ \ \ \ \ \     #10个空格
    Should Be Equal    "${SPACE}"    " "    #引用的空格
    Should Be Equal    "${SPACE}"    "\ "    #引用的空格
    Should Be Equal    ${EMPTY}    \    #空单元

RIDE表示:
这里写图片描述

运行结果:成功
这里写图片描述

4.6. 其他一些自动变量
Robot Framework还有一些可根据实际环境变化的自动变量,这些变量在测试执行期间可以具有不同的值,其中一些变量甚至不是一直可用的。
可用的自动变量如下所列:

变量名称 说明 使用场景
${TEST NAME} 当前测试用例的名称 测试用例
@{TEST TAGS} 当前测试用例被打上的所有标记,按字母顺序排列。可以使用 Set Tags 和 Remove Tags 关键字动态的修改 测试用例
${TEST DOCUMENTATION} 当前测试用例的说明文档,可以使用 Set Test Documentation 关键字动态的修改 测试用例
${TEST STATUS} 当前测试用例的执行状态,PASS 或 FAIL 测试用例 teardown时
${TEST MESSAGE} 当前测试用例的信息 测试用例 teardown时
${PREV TEST NAME} 前一个测试用例的名字,如果还没有测试用例被执行,则该值为空 所有地方
${PREV TEST STATUS} 前一个测试用例的执行状态,PASS/FAIL,如果还没有测试用例被执行,则该值为空 所有地方
${PREV TEST MESSAGE} 前一个测试用例执行所产生的可能的错误信息 所有地方
${SUITE NAME} 当前测试套件的全称 所有地方
${SUITE SOURCE} 当前测试套件文件或目录的绝对路径 所有地方
${SUITE DOCUMENTATION} 当前测试套件的说明文档,可以使用 Set Suite Documentation 关键字动态的改变 所有地方
&{SUITE METADATA} 当前测试套件的元数据 所有地方
${SUITE STATUS} 当前测试套件的执行状态, PASS 或 FAIL 测试套件 teardown
${SUITE MESSAGE} 当前测试套件的全部信息,包括统计 测试套件 teardown
${KEYWORD STATUS} 当前关键的执行状态,PASS 或 FAIL 用户关键字 teardown
${KEYWORD MESSAGE} 当前关键字执行时可能产生的错误信息 用户关键字 teardown
${LOG LEVEL} 当前日志级别 所有地方
${OUTPUT FILE} 到输出文件的绝对路径 所有地方
${LOG FILE} 到日志文件的绝对路径,或者为NONE 当没有创建日志文件时 所有地方
${REPORT FILE} 到测试报告文件的绝对路径,或者为NONE 当没有创建测试报告文件时 所有地方
${DEBUG FILE} 到debug文件的绝对路径,或者为NONE 当没有创建debug文件时 所有地方
${OUTPUT DIR} 到输出目录的绝对路径 所有地方

猜你喜欢

转载自blog.csdn.net/Snailandfish/article/details/82422378
今日推荐