前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Robot Framework(12)- 详细解读 RF 的变量和常量

Robot Framework(12)- 详细解读 RF 的变量和常量

作者头像
小菠萝测试笔记
发布2020-06-09 16:38:50
1.7K0
发布2020-06-09 16:38:50
举报

如果你还想从头学起Robot Framework,可以看看这个系列的文章哦!

https://www.cnblogs.com/poloyy/category/1770899.html

常量的栗子

常量就不多说了吧,大家都懂!直接看栗子

上面 log 关键字后面跟的参数都是常量,且类型均是字符串【RF 里面,常量默认是字符串类型,如果需要整形、浮点数、列表,需要调用关键字来转换 or 生成】

变量的介绍

  • RF中的变量,实质上就是一个Python变量,它指向一个Python对象
  • 所以RF变量对应的是什么Python对象,它就是什么类型的对象
变量标识符
代码语言:javascript
复制
{变量名}

{} 就是变量标识符

RF 的变量类型

变量类型

变量中文

写法

scalar

标量

${SCALAR}

list

列表

@{LIST}

dict

字典

&{DICT}

环境变量

环境变量

%{ENV_VAR}

变量的作用就不说了哈,大家应该都知道~

变量的注意事项

  • 不区分大小写: 和 ${VAR} 指向同一个对象

${var}

  • 变量名若有下划线和空格都会被忽略: 或 ${myVar}

${my var}

测试代码
测试结果

Scalar 变量

特点
  • 当传递 Scalar 变量给关键字作为参数的时候, 就是直接把它所对应的 Python 对象类型传递给关键字对应的函数
  • 每个 List 变量和 Dict 变量,也是 Scalar 变量
测试代码
测试结果
知识点
  • 在 表中定义变量,可以直接在变量后面跟值,不用加 set variable

Variables

  • 给标量赋值,声明变量后面可加=,也可不加
  • 在 表中定义变量,声明变量之后,一定要接 set variable 或 set variable if 关键字,然后再接需要设置的值

Test Cases

  • 变量间,可以互相赋值

List 变量

List 变量的介绍

如果一个标量的值是一个列表,或者类似列表的其它序列,可以将该变量作为列表变量使用,格式为 @{EXAMPLE}

Test Case 表中定义列表变量的栗子

测试结果
测试代码分成了四部分
  1. 声明列表变量,有两种声明列表变量的方式,以及两种生成列表值的方式
  2. 打印列表
  3. 循环打印
  4. 获取列表长度
我们来看看上述 RF 代码等价于 Python 的话,会是咋样的

@{lists} 和 ${lists} 的区别

  • 列表变量也是标量的一种,只是值是列表,所以可以看成列表变量
  • 可以看成是一个列表整体, @{lists} 可以看成整体拆成一个个单独的元素

${lists}

  • 在 Python 里面就是一个 list ,然后 @{lists} 就是展开其 lists 中的每个元素,作为多个参数传入,和 *args 一样效果,在Python 里叫可变参数【可看这篇博文:https://www.cnblogs.com/poloyy/p/12526592.html

${lists}

我们将它们等价到Python 里面去看,这样更好理解

代码语言:javascript
复制
def printarg(*args):
    if len(args) == 0:
        print('** no args **')
    else:
        print('** args are **')
        print('-----------------')
        for one in args:
            print(repr(one))
        print('-----------------')


# 等价于 RF 的写法:printarg  ${lists}
printarg(lists)

# 等价于 RF 的写法:printarg  @{lists}
printarg(*lists)
测试结果
代码语言:javascript
复制
** args are **
-----------------
[1, 2, 3, 4, 5]
-----------------
** args are **
-----------------
1
2
3
4
5
-----------------

获取列表变量中的值

一共两种获取的格式

${变量名}下标值

${变量名下标值}

测试结果
知识点
  • 系统也提示啦,我们应该用 这种格式来代替 @{list} 获取列表的某个值

${list}0

  • 下标也是从 0 开始
  • 下标可以传变量

${list}${index}

Dict 变量

Dict 变量介绍

如果一个标量的值是一个字典,可以将该变量作为字典变量使用,格式为 &{EXAMPLE}

Test Case 表中定义字典变量的栗子

测试结果
我们来看看上述 RF 代码等价于 Python 的话,会是咋样的

&{dict} 和 ${dict} 的区别

  • 字典变量也是标量的一种,只是值是字典,所以可以看成字典变量
  • 可以看成是一个完整的字典对象, &{dict} 可以看成整体拆成一个个单独的键值对

${dict}

  • 在 Python 里面就是一个 dict ,然后&{dict} 就是展开其 dict 中的每个键值对,作为多个参数传入,和 **kwargs 一样效果,在Python 里叫关键字参数【可看这篇博文:https://www.cnblogs.com/poloyy/p/12526592.html

${dict}

我们将它们等价到Python 里面去看,这样更好理解

代码语言:javascript
复制
def printarg(**kwargs):
    if len(kwargs) == 0:
        print('** no kwargs **')
    else:
        print('** kwargs are **')
        print('-----------------')
        for k, v in kwargs.items():
            print(repr(k) + ':' + repr(v))
        print('-----------------')

# 等价于 RF 的写法:printarg  &{dicts1}
printarg(**dicts1)
测试结果
代码语言:javascript
复制
** kwargs are **
-----------------
'name':'yy'
'age':19
-----------------

获取字典变量中的值

只有一种获取格式: ${dicts}key

测试结果
知识点
  • 系统也提示啦,我们应该用 代替 &{dicts}key

${dicts}key

  • 键可以传变量

&{DICT}${KEY}

  • 重点: 会报错哦,不可取

${dict.key}

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-05-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 常量的栗子
  • 变量的介绍
    • 变量标识符
    • RF 的变量类型
    • 变量的注意事项
      • 测试代码
        • 测试结果
        • Scalar 变量
          • 特点
            • 测试代码
              • 测试结果
                • 知识点
                • List 变量
                  • List 变量的介绍
                    • Test Case 表中定义列表变量的栗子
                      • 测试结果
                      • 测试代码分成了四部分
                      • 我们来看看上述 RF 代码等价于 Python 的话,会是咋样的
                    • @{lists} 和 ${lists} 的区别
                      • 测试结果
                    • 获取列表变量中的值
                      • 测试结果
                      • 知识点
                      • Dict 变量介绍
                  • Dict 变量
                    • Test Case 表中定义字典变量的栗子
                      • 测试结果
                      • 我们来看看上述 RF 代码等价于 Python 的话,会是咋样的
                    • &{dict} 和 ${dict} 的区别
                      • 测试结果
                    • 获取字典变量中的值
                      • 测试结果
                      • 知识点
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档