admin 管理员组

文章数量: 887021

RF

测试集目录和初始化文件

  • 对于有多少个测试用例无上限,建议使用少于10个

初始化文件用法:

  • 需共享变量或关键字,可将它们放入资源文件中,该文件通过初始化文件和测试用例文件导入。而不是直接放在初始化文件中

使用测试库

  • 测试用例使用某个库中的关键字,来创建更高级别的用户关键字

导入库

  • 方法一:使用Library导入库
    设置表中Library设置导入测试库,随后列中使用库名称
  • 方法二:Import Library导入库
    使用Builtin库中关键字Import Library

标准库

  • Builtin
  • Collections
  • DateTime
  • Dialogs
  • OperatingSystem
  • Process
  • Screenshot
  • String
  • Telnet
  • XML

外部库

  • SeleniumLibrary
  • AppliumLibrary
  • DatabaseLibary
  • requests

实例

*** Settings ***
Library    SeleniumLibrary
Library    OperatingSystem
Library    common_lib.py    WITH NAME    MycommonLib*** Test Cases ***
case01Import Library    Collections

创建使用变量

使用场景

  • 测试用例表和关键字表中的关键字参数中
  • 变量可以分为三种:标量、列表和字典,语法分别是:${SCALAR},@{LIST},&{DICT}

创建变量

*** Variables ***
${url}    
${port}    8080
@{persons}    tom    kite    rose
&{mydict}    name=tom    age=20    email=tom@gmail.com*** Test Cases ***
case01Log    hello

访问变量

  • 访问列表方式
    通过索引访问(负索引可从末尾访问)
    切片语法访问

  • 访问字典方式
    n a m e [ k e y ] 或 {name}[key]或 name[key]或{name.key}

  • 访问环境变量方式
    %{JAVA_HOME}

内建变量

操作系统变量

  • ${CURDIR}:测试数据文件所在目录绝对路径
  • ${TEMPDIR}:系统临时目录绝对路径
  • ${EXECDIR}:测试执行开始目录绝对路径
  • ${/}:系统目录路径分割符,UNIX系统中为/,Windows系统中为\
  • ${:}:系统路径元素分割符,UNIX系统中为:,Windows系统中为;
  • ${\n}:系统行分隔符,UNIX系统中为\n,Windows系统中为\r \n

数字变量

  • 作用:用于创建整数和浮点数,获得实际数字而不是像数字的字符串作为参数
*** Test Cases ***
Example 1AConnect    example.com    80Example 1BConnect    example.com    ${80}Example 2Do X    ${3.14}    ${-1e-4}
  • 可使用0b,0o,0x前缀表示二进制,八进制和十六进制值创建整数
*** Test Cases ***
Example 1AShould Be Equal    ${0b1011}    ${11}Should Be Equal    ${0o10}    ${8}Should Be Equal    ${0xff}    ${255}Should Be Equal    ${0B1010}    ${0xa}

布尔和None/null变量
作用:表示为空,类似python none和java null

*** Test Cases ***
布尔Set Status    ${true}Create Y    something    ${false}NoneDo XYZ    ${None}Null${ret} =    Get Value    argShould Be Equal    ${ret}    ${null}

空格和空变量

  • 语法:
    使用变量 S P A C E 和 {SPACE}和 SPACE和{EMPTY}创建空格和空字符串
    扩展变量语法,${SPACE*5}

  • 作用:
    需要使用反斜杠转义空格或空单元格时
    使用变量比使用反斜杠更易理解

*** Test Cases ***
One spaceShould Be Equal    ${SPACE}    \ \four spaceShould Be Equal    ${SPACE * 4}    \ \ \ \ \Ten spaceShould Be Equal    ${SPACE * 10}    \ \ \ \ \ \ \ \ \ \ \Quoted spaceShould Be Equal    "${SPACE}"    " "Quoted spacesShould Be Equal    "${SPACE * 2}"    " \ "EmptyShould Be Equal    ${EMPTY}    \    

自动变量
语法:

  • ${TEST NAME} 当前测试用例名称
  • @{TEST TAGS} 包含按字母顺序排列的当前测试用例标签
  • ${TEST DOCUMENTATION} 当前测试用例文档
  • ${TEST STATUS} 当前测试用例状态,通过或失败
  • ${TEST MESSAGE} 当前测试用例消息
  • ${PREV TEST NAME} 先前测试用例名称,如果尚未执行任何测试,则为空字符串
  • ${PREV TEST STATUS} 先前测试用例状态:pass,FAIL或未执行任何测试时为空字符串
  • ${PREV TEST MESSAGE} 先前测试用例的可能错误消息
  • ${SUITE NAME} 当前测试套件的全名
  • ${SUITE SOURCE} 套件文件或目录的绝对路径
  • ${SUITE DOCUMENTATION} 当前测试套件文档,可使用Set Suite Documentation 关键字动态设置
  • ${SUITE METADATA} 当前测试套件免费元数据,可使用Set Suite Metadata关键字进行设置
  • ${SUITE STATUS} 当前测试套件的状态,通过或失败
  • ${KEYWORD MESSAGE} 当前关键字的可能错误消息
  • ${LOG LEVEL} 当前日志级别
  • ${OUTPUT FILE} 输出文件的绝对路径
  • ${LOG FILE} 日志文件的绝对路径
  • ${REPORT FILE} 报告文件的绝对路径
  • ${DEBUG FILE} 调试文件的绝对路径
  • ${OUTPUT DIR} 输出目录的绝对路径

变量的优先级和作用域
作用:

  • 不同来源的变量具有不同的优先级,在不同的范围内可用

变量的优先级:

  • 命令行中变量
    优先级最高,覆盖测试用例文件的变量表和测试数据导入的资源和变量文件中创建的可能变量

  • 变量表中变量
    测试用例文件中变量表创建的变量可用于该文件中所有测试用例
    这些变量覆盖导入的资源和变量文件中具有相同名称的可能变量

  • 导入资源中变量
    从资源和变量文件导入变量在测试数据中创建的所有变量中优先级最低

  • 测试执行期间设置变量
    测试执行过程中使用关键字返回值或使用Set Test / Suite / Global Variable 关键字设置变量始终覆盖设置范围内可能存在的现有变量

  • 内置变量
    T E M P D I R 和 {TEMPDIR}和 TEMPDIR和{TEST_NAME}等内置变量在所有变量中具有最高优先级,无法使用变量表或从命令行覆盖它们

变量作用域

范围:

  • 根据变量创建位置和方式,变量可具有全局,测试套件,测试用例或局部作用域

全局变量

  • 命令行中使用:–variable 和 --variablefile 选项设置

  • 可在测试数据中任何位置使用 Builtin 关键字 set global variable 创建新的全局变量或更改现有全局变量

  • 内置变量也是全局

测试套件作用域

  • 具有测试套件范围变量可在定义或导入测试套件任何位置使用
  • 可在变量表中创建,可从资源和变量文件导入,也可在测试执行期间使用 Builtin 关键字 Set Suite Variable 设置

测试用例作用域

  • 在测试用例以及测试使用的所有用户关键字中,最初,此范围内没有变量,可通过在测试用例中任何位置使用 Builtin 关键字 Set Test Variable 来创建

局部作用域

  • 测试用例和用户关键字具有局部变量作用域,其他测试或关键字看不到该作用域
  • 可使用已执行关键字返回值来创建局部变量,用户关键字也可将其作为参数

本文标签: RF