RobotFramework测试框架(3)-变量

​​RF也有变量和常量之分,在RF中每个变量都采用变量标识符$,@,&,%+变量名表示。
常用变量类型有三种,Scalar标量类型、List列表类型、Dicionary字典类型。
默认情况下,变量只在当前作用域内有效、可通过关键字Set Global Variable、Set Suite Variable和Set Test Variable来
改变变量作用域。
RF中常量分为环境常量、数值常量、特殊字符常量、系统保留常量。

在Robot Framework(RF)中,变量是一种重要的元素,用于存储和传递测试执行过程中所需的数据。RF支持多种类型的变量,每种类型的变量都有其特定的标识符和使用方式。

  1. 变量类型与标识符:

    • Scalar(单值变量):用于存储单个数据值。这些变量使用“ ”作为标识符,例如 ‘ ”作为标识符,例如` 作为标识符,例如{var}`。
    • List(列表变量):用于存储一组数据。列表变量使用“@”作为标识符,例如@{lvar}。列表变量可以包含多个数据项,作为参数传递时,每个数据项都被视为一个独立的参数。
    • Dict(字典变量):用于存储键值对数据。字典变量使用“&”作为标识符,例如&{mydict1}。字典变量中的每个键值对都可以作为一个参数进行传递。
  2. 变量声明与初始化:

    • 在RF中,变量不需要特别的声明,只要有初始化赋值即可使用。初始化赋值可以在测试用例中直接进行,也可以在测试套件(TestSuite)的Variable部分进行。在测试用例中直接定义的变量是局部变量,而在测试套件Variable中定义的参数是全局变量。
    • 在RF的编辑区域,可以通过右键点击TestSuite或在Edit区点击“Add Scalar”或“Add List”按钮来手动添加变量。添加后,这些变量可以在整个测试套件中被引用和使用。
  3. 变量的赋值与取值:

    • 变量的赋值可以通过直接赋值、函数的返回值等方式进行。例如,在测试用例中,可以使用${var}=SetVariable hello, world来为Scalar变量赋值,或使用@{mylist}=Create List a b c来创建并初始化List变量。
    • 变量的取值则可以通过在测试用例或关键字中引用变量名来进行。RF会自动解析变量名并替换为相应的值。
  4. 变量的作用域:

    • 在RF中,变量的作用域取决于其定义的位置。局部变量只在其所在的测试用例或关键字中有效,而全局变量则在整个测试套件中有效。

了解并正确使用变量是编写高效、可维护的Robot Framework测试脚本的关键。通过合理定义和使用变量,可以简化测试脚本的编写过程,提高测试的可读性和可维护性。

变量作用域

一个Test Case里的变量,作用域在这个Test Case内部。
一个User Keyword里的变量,作用域在这个User Keyword内部。
一个文件型Test suite里的变量,作用域在这个Test Suite内部,所有包含在下面的Test Case也都可以使用。

在这里插入图片描述

RF内置变量

RF内置变量,主要包括操作系统相关变量和一些测试过程中的自动变量
操作系统相关变量
在这里插入图片描述

在这里插入图片描述

#
*** Settings ***
Library     SeleniumLibrary
*** Test Cases ***
打印操作系统变量
        Log    ${CURDIR}
        Log    ${TEMPDIR}
        Log    ${EXECDIR}
    

自动变量
在这里插入图片描述

在这里插入图片描述

标量变量

标量变量是指用${}标识的变量,标量变量最常作为字符串使用,也可以将任何值赋给它,包括List。
方法一:

*** Settings ***
Library     SeleniumLibrary
*** Variables ***
${name}     zhangsan
*** Test Cases ***
打印名称
        Log    ${name}

方法二:

*** Settings ***
Library     SeleniumLibrary
*** Test Cases ***
打印名称
        ${name}     Set Variable    张三
        Log    ${name}

列表变量

@定义,需要打印输出列表中的各元素,可用Log Many关键字,如果用Log打印列表变量,只能输出整个变量值。
当使用Log打印时,标识符需要用$,不能用@。

*** Settings ***
Library     SeleniumLibrary
*** Variables ***
@{my_list}    Apple    Banana    Orange
*** Test Cases ***
打印名称
        Log    ${my_list}   #['Apple', 'Banana', 'Orange']
        Log Many    @{my_list}  #分别打印Apple Banana  Orange

编写用例脚本时,可以通过Creatr List关键字来创建列表变量,也可以通过Set variable关键字传入多个变量来实现列表变量
的创建。

#
*** Settings ***
Library     SeleniumLibrary
*** Variables ***

*** Test Cases ***
打印名称
        @{my_list_1}      Create List     Apple    Banana    Orange
        Log    ${my_list_1}   #['Apple', 'Banana', 'Orange']
        Log Many    @{my_list_1}  #分别打印Apple Banana  Orange
        @{my_list_2}    Set Variable    a   b   c
        Log Many    @{my_list_2}

字典变量

用&{}标识
方法一:

#
*** Settings ***
Library     SeleniumLibrary
*** Variables ***
&{dict}     name=张三     sex=age=20
*** Test Cases ***
打印名称
        Log Many    &{dict}
        Log    ${dict}

方法二:
在脚本中提供create dictionary关键字创建字典变量

*** Test Cases ***
打印名称
        &{dict}     Create Dictionary      name=张三     sex=age=20
        #取值三种方式
        ${name}     Get From Dictionary    ${dict}    name  default
        Log    ${name}

变量文件

在RF中,还可以通过变量文件获取变量。
变量文件本质是一个python文件,在文件中定义各种变量对象,在测试套件中引用。
在 Robot Framework 中,导入变量通常是通过使用外部文件来实现的。Robot Framework 支持从多种格式的文件中导入变量,包括 YAML、JSON 和 Python 文件等。这样做的好处是,你可以将变量集中管理,并在多个测试套件或测试用例中重复使用这些变量。

下面是如何在 Robot Framework 中导入变量的几种方法:

1. 从 YAML 文件中导入变量

假设你有一个名为 variables.yaml 的 YAML 文件,内容如下:

SERVER: localhost
PORT: 8080
USER: admin
PASSWORD: secret

你可以在 Robot Framework 的测试套件文件中使用 *** Variables *** 部分和 &{IMPORT} 语法来导入这些变量:

*** Settings ***
Variables    variables.yaml

*** Test Cases ***
My Test Case
    Log    Server is ${SERVER} and port is ${PORT}

2. 从 JSON 文件中导入变量

如果你有一个 variables.json 的 JSON 文件,可以像下面这样导入:

{
    "SERVER": "localhost",
    "PORT": 8080,
    "USER": "admin",
    "PASSWORD": "secret"
}

然后在 Robot Framework 测试套件中导入:

*** Settings ***
Variables    variables.json

*** Test Cases ***
My Test Case
    Log    Server is ${SERVER} and port is ${PORT}

3. 从 Python 文件中导入变量

你还可以从 Python 文件中导入变量。假设你有一个 variables.py 文件:

SERVER = 'localhost'
PORT = 8080
USER = 'admin'
PASSWORD = 'secret'

在 Robot Framework 中,你可以直接在测试用例中引用这些变量,而无需特别导入,因为 Python 文件本身就是模块,可以直接被 Python 解释器加载。但是,为了清晰和方便管理,你可能会想在测试套件文件的 *** Variables *** 部分中创建一个字典,将这些变量作为键值对包含进去。

注意事项

  • 变量文件的路径可以是相对路径或绝对路径。如果是相对路径,则相对于运行 Robot Framework 命令的当前工作目录。
  • 变量文件中的变量名应遵循 Robot Framework 的命名规则,通常是大写字母,并用下划线分隔。
  • 在测试用例中引用变量时,使用 ${variable_name} 的格式。

最后,请确保你的 Robot Framework 版本支持这些特性,并且正确配置了相关的文件和路径。随着 Robot Framework 的发展,这些功能可能会有所变化或增加新的特性,因此建议查阅最新的官方文档以获取最准确的信息。

命令行定义变量

可以从命令行传入变量

关键字返回变量

关键字的返回值可以赋给某个变量,这也是关键字之间传递数据的方法。
赋值的时候,变量在前,关键字在后,变量后面可加=,如果关键字返回了列表变量,可以将值赋给几个标量变量。
用这种关键字返回获取到的变量是局部变量,只在当前作用域内有效。

相关推荐

  1. RobotFramework测试框架(11)--变量文件

    2024-04-05 17:24:04       16 阅读
  2. RobotFramework测试框架(6)测试用例文件结构

    2024-04-05 17:24:04       30 阅读
  3. RobotFramework测试框架(7)-SeleniumLibrary常用关键字

    2024-04-05 17:24:04       10 阅读
  4. 关于自动化测试工具RobotFrameWork

    2024-04-05 17:24:04       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-05 17:24:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-05 17:24:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-05 17:24:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-05 17:24:04       20 阅读

热门阅读

  1. linux内核常用调优参数

    2024-04-05 17:24:04       14 阅读
  2. Android U user+root实现方案

    2024-04-05 17:24:04       15 阅读
  3. FTP协议

    FTP协议

    2024-04-05 17:24:04      10 阅读
  4. vue3监听div高宽变化自定义分析

    2024-04-05 17:24:04       10 阅读
  5. Postman 请求参数传递指南:Query、Path 和 Body 详解

    2024-04-05 17:24:04       12 阅读
  6. 输出杨辉三角形

    2024-04-05 17:24:04       15 阅读
  7. Oracle备份和还原的几种方式

    2024-04-05 17:24:04       13 阅读
  8. 结 构 体

    2024-04-05 17:24:04       29 阅读