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

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

常量的栗子

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

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

变量的介绍

  • RF中的变量,实质上就是一个Python变量,它指向一个Python对象
  • 所以RF变量对应的是什么Python对象,它就是什么类型的对象

变量标识符

{变量名}

{} 就是变量标识符

RF 的变量类型

变量类型 变量中文 写法
scalar 标量  ${SCALAR} 
list 列表  @{LIST} 
dict 字典  &{DICT}  
环境变量 环境变量  %{ENV_VAR} 

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

变量的注意事项

  • 不区分大小写: ${var} 和 ${VAR} 指向同一个对象
  • 变量名若有下划线和空格都会被忽略: ${my var}  或  ${myVar}

测试代码

测试结果

Scalar 变量

特点

  • 当传递 Scalar 变量给关键字作为参数的时候, 就是直接把它所对应的 Python 对象类型传递给关键字对应的函数
  • 每个 List 变量和 Dict 变量,也是 Scalar 变量

测试代码

测试结果

知识点

  • 在 Variables 表中定义变量,可以直接在变量后面跟值,不用加 set variable
  • 给标量赋值,声明变量后面可加=,也可不加
  • 在 Test Cases 表中定义变量,声明变量之后,一定要接 set variable 或 set variable if 关键字,然后再接需要设置的值
  • 变量间,可以互相赋值

List 变量

List 变量的介绍

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

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

测试结果

测试代码分成了四部分

  1. 声明列表变量,有两种声明列表变量的方式,以及两种生成列表值的方式
  2. 打印列表
  3. 循环打印
  4. 获取列表长度

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

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

  • 列表变量也是标量的一种,只是值是列表,所以可以看成列表变量
  • ${lists} 可以看成是一个列表整体, @{lists} 可以看成整体拆成一个个单独的元素
  • ${lists} 在 Python 里面就是一个 list ,然后 @{lists} 就是展开其 lists 中的每个元素,作为多个参数传入,和 *args 一样效果,在Python 里叫可变参数【可看这篇博文:https://www.cnblogs.com/poloyy/p/12526592.html

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

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)

测试结果

** args are **
-----------------
[1, 2, 3, 4, 5]
-----------------
** args are **
-----------------
1
2
3
4
5
-----------------

获取列表变量中的值

一共两种获取的格式

  1. ${变量名}[下标值]
  2. ${变量名[下标值]}

测试结果

知识点

  • 系统也提示啦,我们应该用 ${list}[0] 这种格式来代替 @{list} 获取列表的某个值
  • 下标也是从 0 开始
  • 下标可以传变量 ${list}[${index}]

Dict 变量

Dict 变量介绍

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

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

测试结果

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

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

  • 字典变量也是标量的一种,只是值是字典,所以可以看成字典变量
  • ${dict} 可以看成是一个完整的字典对象, &{dict} 可以看成整体拆成一个个单独的键值对
  • ${dict} 在 Python 里面就是一个  dict ,然后&{dict} 就是展开其 dict 中的每个键值对,作为多个参数传入,和 **kwargs 一样效果,在Python 里叫关键字参数【可看这篇博文:https://www.cnblogs.com/poloyy/p/12526592.html

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

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)

测试结果

** kwargs are **
-----------------
'name':'yy'
'age':19
-----------------

获取字典变量中的值

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

测试结果

知识点

  • 系统也提示啦,我们应该用 ${dicts}[key] 代替 &{dicts}[key]
  • 键可以传变量 &{DICT}[${KEY}]
  • 重点: ${dict.key} 会报错哦,不可取

Robot Framework(12)- 详细解读 RF 的变量和常量的更多相关文章

  1. Robot Framework(13)- RF 循环的详细使用

    如果你还想从头学起Robot Framework,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1770899.html 前言 RF用   ...

  2. Robot Framework(八) 资源和变量文件

    2.7资源和变量文件 测试用例文件和测试套件初始化文件中的用户关键字和变量只能在创建它们的文件中使用,但资源文件提供了共享它们的机制.由于资源文件结构非常接近测试用例文件,因此很容易创建它们. 变量文 ...

  3. robot framework 如何处理循环条件下面的变量自增

    下面举了一个基础栗子,可以运行的.${num}就是我需要的自增变量.有人也许会问为什么不用${i},不是我不想用,而是我${i}有其他用处,必须另外定义一个变量,需要注意的是定义变量的时候,应该在循环 ...

  4. Robot Framework(六)变量

    变量 2.5.1简介 变量是Robot Framework的一个不可或缺的特性,它们可以在测试数据的大多数地方使用.最常见的是,它们用于测试用例表和关键字表中关键字的参数,但所有设置都允许在其值中使用 ...

  5. Robot Framework自动化测试环境部署

    文档版本:v1.0 作者:令狐冲 如有问题请发邮件到:1146009864@qq.com 使用Robot Framework框架(以下简称RF)来做自动化测试. 模块化设计 1.所需环境一览表 软件 ...

  6. Python + Robot Framework 环境搭建

    一.Python 安装 说明:由于RIDE是基于python2.x开发,后期未做python3.x兼容,所以这里安装python2.7. 链接: https://pan.baidu.com/s/1yf ...

  7. Robot Framework操作

    Robot Framework 介绍 RobotFramework是一款基于python的开源自动化测试框架,遵守Apache License 2.0协议,在此协议下所有人都可以免费开发和使用.因为R ...

  8. Robot Framework语法学习(一)

    Robot Framework语法学习: 一.变量的声明.赋值与使用 1.变量标识符:每个变量都可以用  变量标识符 ${变量名} 来表示. 2.变量声明:可以在TestSuite上点右键或者在Edi ...

  9. Robot Framework - 5 - 创建测试数据

    Creating test data User Guide - Creating test data:http://robotframework.org/robotframework/latest/R ...

随机推荐

  1. Redis系列(六):设置/移除键的过期时间

    本篇博客是Redis系列的第6篇,主要讲解以下内容: 数据库数量 切换目标数据库 设置键的过期时间 移除键的过期时间 本系列的前5篇可以点击以下链接查看: Redis系列(一):Redis简介及环境安 ...

  2. P2201 数列编辑器

    传送门呀呀呀呀呀呀呀呀呀呀呀呀呀 \(乍一看题目好像很难\)(实际也确实很难) \(但是我们仔细看就发现,整个数列分成了光标前和光标后两组数列\) \(我们有什么理由不分开储存呢??\) \(然后光标 ...

  3. GoF23:建造者模式

    目录 概念 角色分析 实现方式 方式一 角色分析 代码编写 方式二 角色分析 代码编写 总结 优点 缺点 应用场景 建造者也抽象工厂模式的比较 ​ 建造者模式也属于创建型模式,它提供了一种创建对象的最 ...

  4. Spring Boot 整合 Apache Dubbo

    Apache Dubbo是一款高性能.轻量级的开源 Java RPC 框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现. 注意,是 Apache Dubb ...

  5. Bootstrap Table 3 官方文档

    备查 Bootstrap Table 3 官方文档 示例

  6. Nacos系列(一):Nacos环境安装及Hello World示例

    现在微服务架构越来越火,微服务架构中比较重要的一项就是配置中心, Nacos是阿里巴巴的一个开源项目,它的其中一个功能就是可以作为配置中心,实现配置的动态变更.历史版本对比.配置回滚等功能. 更多的描 ...

  7. git版本控制系统小白教程(下)

    前言:本文主要介绍git版本控制系统的一些基础使用,适合小白入门,因为内容较多,会分为两部分进行分享,查看上部请点传送门. 删除文件 ​ git删除文件一般有三种情况,第一种是在工作区修改了文件,但是 ...

  8. Windows基础学习

    0x01 常用的端口 HTTP协议代理服务器常用端口号:80/8080/3128/8081/9098SOCKS代理协议服务器常用端口号:1080FTP(文件传输)协议代理服务器常用端口号:21Teln ...

  9. 手把手golang教程【二】——数组与切片

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是golang专题的第五篇,这一篇我们将会了解golang中的数组和切片的使用. 数组与切片 golang当中数组和C++中的定义类似, ...

  10. C#如何给WinForm的button等控件添加快捷键

    网上有三种方法来设置快捷键,经本人验证后得出最优方法   Alt+*(按钮快捷键) 在大家给button.label.menuStrip等控件设置Text属性时在后边加&键 名就可以了,比如b ...