添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  • 标量为最常用的类型,标量在大部分情况下是字符串形式,在使用时将变量名替换为其值。
  • 列表变量,列表中的元素可以为任何类型,列表的访问从 0 开始。
  • 字典,同列表一样,字典的值和键可以为任何元素,字典是无序的,通过键值进行访问。
  • 环境变量,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
  • 使用 Set 关键字定义 *** 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 > Robot Framework 提供一些内置变量,包括操作系统,数字以及自动化等。
  • - 操作系统变量
  • ${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
    
  • - 布尔和 None/Null 变量 > python 中的 None 和 JAVA 中的 Null 都可以作为 Robot Framwork 的内置变量。
  • *** 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
        Do XYZ    ${None}                   # Do XYZ gets Python None as an argument
        ${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 文件夹的绝对路径

    变量的优先级

    内置变量-->>测试中定义-->>命令行中定义-->>变量表格-->>资源文件

  • 命令行中定义的变量在测试开始执行前被定义,定义的变量会覆盖测试文件变量表格和资源文件中定义的变量。
  • 测试文件变量表格中定义的变量,在当前测试文件中全局可用,可能会覆盖资源文件和变量文件中的变量。
  • 资源文件和变量文件中定义的变量在测试文件中优先级最低,如果他们之间存在重复,则最先引入的文件的变量优先级最高。
  • 测试执行中定义的变量拥有最高优先级,但它的作用域仅限于当前测试。
  • 内置变量不可被覆盖。 # 变量的作用域
  • > 命令行中或使用Set Global Variable定义的变量为全局变量,在任意地方都可以使用,另外内置变量也是一种全局变量
  • 测试集变量 > 在变量表格,引入的资源或变量文件以及使用Set suite Variable定义的变量为测试集变量,在测试集内可用。
  • 测试用例变量 > 由Set Test Variable定义的变量为测试用例变量,测试用例范围内,包括关键字都可以使用,初始状态下没有变量为此类变量。
  • > 测试用例或关键字中由关键字返回或关键字参数的变量,该变量只能在测试用例或关键字范围内可用。

    [ WARN ] Automatically parsing other than '.robot' files is deprecated. Convert 'D:\PythonProject\DemoCases\Testcases\demo.txt' to '.robot' format or use '--extension' to explicitly configure which files to parse.
    [ ERROR ] Suite 'Testcases' contains no tests named ''.

    Robot Run SingleTestCase/Robot Run TestSuite 都设置的同一路径
    arguments: -d results -t "$SelectedText$" ./
    Working directory: $FileDir$

    应该是路径错了,