每当我们学习一门新的语言,变量都是最先需要了解的,Robot Framework 也是如此,下面就介绍一下 Robot Framework 中的变量。
变量有那些
官方文档中给出三种类型:标量,列表和字典。
*** Test Cases ***
Environment variables
Log Current user: %{USER}
Run %{JAVA_HOME}${/}javac
# 怎样定义变量
*** Variables ***
${NAME} Robot Framework
${VERSION} 2.0
${ROBOT} ${NAME} ${VERSION}
@{NAMES} Matti Teppo
&{USER 1} name=Matti address=xxx phone=123
*** Test Cases ***
using set keywords
${hi} = Set Variable Hello, world!
${Global_Var} = Set Glabal Variable Hello, world!
${Suite_Var} = Set Suite Variable Hello, world!
${Test_Var} = Set test Variable Hello, world!
robot . --variable HOST:localhost:7272 --variable USER:robot
*** Test Cases ***
Returning
${x} = Get X an argument
@{list} = Create List first second third
&{dict} = Create Dictionary first=1 second=${2} ${3}=third
${a} ${b} ${c} = Get Three
# 变量如何使用
*** Test Cases ***
Objects
KW 1 ${STR}
assert result
Should Be True ${status}
assert result
Run Keyword If '${text}'=='123' log 222
变量 | 描述 |
---|---|
${CURDIR} | 当前测试文件的绝对路径,大小写敏感 |
${TEMPDIR} | 临时文件的绝对路径,linux 系统上为/tmp,windows 上是c:\Documents and Settings<user>\Local Settings\Temp |
${EXECDIR} | 开始执行测试时所在文件夹的绝对路径 |
${/} | 系统路径分隔符,linux 上为/,Windows 上为\ |
${:} | 系统路径分隔符,Linux 上为:,Windows 上为; |
${\n} | 系统文件行分割符,Linux 上为\n,Windows 上为\r\n |
*** Test Cases ***
Example
Create Binary File ${CURDIR}${/}input.data Some text here${\n}on two lines
Set Environment Variable CLASSPATH ${TEMPDIR}${:}${CURDIR}${/}foo.jar
*** Test Cases ***
Example 1A
Connect example.com 80 # Connect gets two strings as arguments
Example 1B
Connect example.com ${80} # Connect gets a string and an integer
Example 2
Do X ${3.14} ${-1e-4} # Do X gets floating point numbers 3.14 and -0.0001
*** Test Cases ***
Boolean
Set Status ${true} # Set Status gets Boolean true as an argument
Create Y something ${false} # Create Y gets a string and Boolean false
None
Do XYZ ${None} # Do XYZ gets Python None as an argument
Null
${ret} = Get Value arg # Checking that Get Value returns Java null
Should Be Equal ${ret} ${null}
*** Test Cases ***
One space
Should Be Equal ${SPACE} \ \
Four spaces
Should Be Equal ${SPACE * 4} \ \ \ \ \
Ten spaces
Should Be Equal ${SPACE * 10} \ \ \ \ \ \ \ \ \ \ \
Quoted space
Should Be Equal "${SPACE}" " "
Quoted spaces
Should Be Equal "${SPACE * 2}" " \ "
Empty
Should Be Equal ${EMPTY} \
变量 | 描述 | 使用范围 |
---|---|---|
${TEST NAME} | 当前测试用例的名称 | 测试用例内 |
@{TEST TAGS} | 当前测试用的 Tags | 测试用例内 |
${TEST DOCUMENTATION} | 当前测试用例的文档 | 测试用例内 |
${TEST STATUS} | 当前测试用例的测试结果,PASS 或 FAIL | Test teardown |
${TEST MESSAGE} | 当前测试用的的测试结果信息 | Test teatdown |
${PREV TEST NAME} | 上一条测试用例的名称,如果没有则值为空 | 任意 |
${PREV TEST STATUS} | 上一条测试用例的结果,如果没有则值为空 | 任意 |
${PREV TEST MESSAGE} | 上一条测试用例的结果信息,如果没有则值为空 | 任意 |
${SUITE NAME} | 当前测试集的全称 | 任意 |
${SUITE SOURCE} | 当前测试集的绝对路径 | 任意 |
${SUITE DOCUMENTATION} | 当前测试集的描述,可以通过Set Suite Documentation 修改 | 任意 |
&{SUITE METADATA} | 当前测试集的 METADATA,可以通过Set Suite Metadata修改 | 任意 |
${SUITE STATUS} | 当前测试集的测试状态 | Suite teardown |
${SUITE MESSAGE} | 当前测试集的测试状态信息 | Suite teardown |
${KEYWORD STATUS} | 当前关键字的状态 | Keyword teardown |
${KEYWORD MESSAGE} | 当前关键字的状态信息 | Keyword teardown |
${LOG LEVEL} | 当前的日志级别 | 任意 |
${OUTPUT FILE} | output 文件的绝对路径 | 任意 |
${LOG FILE} | log 文件的绝对路径,如果没有则为 None | 任意 |
${REPORT FILE} | report 文件的绝对路径,如果没有则为 None | 任意 |
${DEBUG FILE} | debug 文件的绝对路径,如果没有则为 None | 任意 |
${OUTPUT DIR} | output 文件夹的绝对路径 | 任意 |
内置变量-->>测试中定义-->>命令行中定义-->>变量表格-->>资源文件