Robot Framework--08 List Variables-List变量及其用法

转自:http://blog.csdn.net/tulituqi/article/details/7907981

一、List变量及其用法

在我们前面几篇文章里用到了很多List变量,相信以后各位也会碰到需要使用的地方。

1、List变量赋值

和Scalar类似的赋值,除了用Set Variable还可以用Create List。

运行一下:

2、List变量使用

在使用上要注意看关键字的参数到底是Scalar的还是List,区别就是看变量名前面是否有 * (星号),如图:

这个关键字的name就是支持传入Scalar型的参数,*args就是支持可以传入List型值的。

所谓List型值其实是说支持多个值,即不确定个数的,List-like一样的值,如下图的2、3行:

当然,并不是说没有星号的就不能用List的,只要是多个变量就可以用List传值。

像Log这个关键字,他有2个Scalar型的传入参数,如果我想传List也是可以的,但是必须是一个有2个元素的List,因为Log的第二个参数有默认值,所以如果你传入1个元素的List也是可以的,但是如果传入3个元素的List,那么就会报错了。

你可以写成上面这样,但是我并不推荐这种做法,这里只是为了讲解List的作用而做的示范。

综上,对于有多个参数的关键字,你可以按照需要传入多个Scalar变量,也可以传入List变量,根据你自己的需要选择合适的方式。

二、变量转换

之前提过了Scalar变量用 $ 作为标识符,List型变量用 @ 作为标识符,而且他们是可以进行转换的,理论上可以互相进行转换,但是也有一点限制。

1、List变量转换成Scalar

这种转换的效果是把整个List变成一个Scalar,我觉得作用主要是对于那些只接收Scalar变量参数的关键字,而你又想传List的全部值的时候,或者其他你需要的把List当作Scalar的情况下使用。例如Fail关键字,他的msg这个参数只能接收Scalar变量。

如果你想用Fail,把f这个变量的值都打出来,下面这样写是肯定会报错的。

报错信息为 Keyword ‘BuiltIn.Fail‘ expected 0 to 1 arguments, got 3.

那么我们转换一下,这样写就不报错了。

运行结果:

2、Scalar变量转换成List

其实以前介绍用户关键字的时候也演示过,对于返回值是List的关键字,如果你给要赋值的变量写的是Scalar的,他会自动把他变成List的。

还是上面这个例子,我们把@{f}改成${f}

这样也是OK的。

3、转换的限制

但是,我前面提到了,转换是有一点限制的。

首先,上一讲提到了,变量要进行赋值(类似于初始化)之后才能使用,如果没有进行过赋值的RIDE里会有颜色提示,用一个前面的图

图中的紫色${f}就是提示你他没有进行过赋值,此时而系统会默认他就是@{f}的Scalar形式,这个可以看上面的执行结果。

那么这个限制就在Scalar转换成List的地方,系统会默认${f}是@{f}的Scalar形式,但是他并不会默认@{f}是${f}的list形式,即使${f}已经是list了。

看一下例子:

这样写的话运行就会报错:Non-existing variable ‘@{f}‘.

那这时候${f}有什么用呢?除了前面介绍的作为Scalar型变量,值是所有元素,还可以根据index直接获得某个元素。

例如:

运行结果:

看完上面的限制之后,还要补充一点,系统会默认${f}是@{f}的Scalar形式,这个也是有限制,必须是${f}没有被赋值过的情况,如果${f}被赋值过是什么情况呢?

看看例子:

你觉得${f}会是什么值呢?

所以,这里要注意,尽量不要让Scalar和List的变量重名,特别是你要用作不同的用途的时候。

一个重要的影响就是会导致下面的List元素获取出现越界的情况。

三、List元素的获取

List元素的获取只有一种方式,无论是一维List还是二维List,都是用${变量名[index]},就是用$的变量,在变量名后面加上方括号,里面是序号。

1、一维List的例子。

运行:

2、二维List的例子。

运行结果:

如果log后面只写${f[1]},那么得到的结果如图:

总之,就是用方括号来表明你需要的元素,如果是多维List,要想清楚你到底要哪层的,不要写少了或者写多了。

时间: 2024-10-05 04:27:39

Robot Framework--08 List Variables-List变量及其用法的相关文章

Robot Framework使用技巧之内部变量

[转载] 1.变量的使用 变量可以在命令行中设置,个别变量设置使用--variable (-v)选项,变量文件的选择使用--variablefile (-V)选项. 通过命令行设置的变量是全局变量,对其所有执行的用例都有效.它们将覆盖变量表格中的同名变量或是 通过变量文件引入到测试数据中的同名变量. 设置单个变量的语法是--variable name:value, “name”是不使用${}的变量名称, “value”则是其赋予的值. 可以多次使用该选项设置多个变量.仅有标量变量可以使用该语法且

robot framework学习笔记之三—Scalar变量

一.变量赋值 1)Set赋值 通常使用Set Variable关键字对变量进行赋值,其他Set相关的带Variable的关键字也可以进行赋值 赋值的时候,变量后面写不写『=』都可以,如下: 如果${vara}的值和abcd字符串相等,就赋值321给${varc};如果不相等则赋值678 2)Get赋值 主要用于返回值上,包括系统关键字的返回值和用户关键字的返回值,如下: 第一个例子是获取变量${vara}的长度,第二个例子是获取时间 二.变量使用 1)在判断中使用 如果${vara1}和jay字

Robot Framework - 基础关键字 BuiltIn 库(二)

本篇教程,我们继续接着上篇内容进行讲解,我们本节教程讲解的是Robot Framework 机器人框架中的变量中使用判断.字符串的拼接.Evaluate的用法.调用Python文件.条件分支语句.以及For循环语句案例和字典中的基本使用,介绍字典的目的是方便后面我们做接口测试!好吧,我们开始搞起吧~~~ 判断中使用变量 字符串的拼接 Evalute用法 调用Python文件 条件分支案例 For循环语句案例 一.判断中使用变量 二.字符串的拼接 三.Evalute用法 四.调用Python文件

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

2.7资源和变量文件 测试用例文件和测试套件初始化文件中的用户关键字和变量只能在创建它们的文件中使用,但资源文件提供了共享它们的机制.由于资源文件结构非常接近测试用例文件,因此很容易创建它们. 变量文件提供了一种创建和共享变量的强大机制.例如,它们允许除字符串以外的值,并允许动态创建变量.它们的灵活性来自于它们是使用Python代码创建的,这也使它们比Variable表更复杂. 2.7.1资源文件 使用资源文件 使用“ 设置”表中的“ 资源”设置导入资源文件.资源文件的路径在设置名称后面的单元格

Robot Framework 内置变量

转自:https://blog.csdn.net/qq_26886929/article/details/53907755 Robot Framework 内部提供了一下直接可用的内置变量 1. 操作系统相关变量 内置的操作系统相关的变量,减少了测试数据对操作系统之间的差异性的关注 RF 中可用的操作系统相关的内置变量如下表: 变量 用途 ${CURDIR} 测试数据文件所在目录的绝对路径,该参数是大小写敏感的 ${TEMPDIR} 操作系统临时目录的绝对路径,在类 Unix 系统中,该路径通常

Robot Framework - 一些练习

01 - 安装Robot Framework TA环境 根据系统请选择对应的版本包来安装,下面是以Win7-64bit系统为例,来说明如何搭建一个可以运行练习三test case的RF TA环境. 1)首先,要安装好版本对应的python环境, C:\Users\guowli>python Python 2.7.8 (default, Jun 30 2014, 16:08:48) [MSC v.1500 64 bit (AMD64)] on win32 Type "help",

Robot Framework + Selenium library + IEDriver环境搭建

目录: 1 Robot框架结构2 环境搭建  2.1 安装Python  2.2 安装Robot Framework  2.3 安装wxPython  2.4 安装RIDE  2.5 安装Selenium2Library  2.6 安装IEDriverServer 1 Robot框架结构 为了更好的了解环境安装,我们先看下框架结构: 图1 Robot Framework Architecture Robot Framework 通过导入不同的库,就可以使用库中所提供的关键字,从而时行相关的测试.

2小时入门Robot Framework

1.介绍 1.1.介绍Robot Robot Framework是一个基于关键字驱动的自动化测试框架.通过该框架,测试人员可使用python封装关键字,并在非代码环境下使用关键字构建可被执行的测试用例 Robot Framework官方网站:http://robotframework.org/ 1.2.安装 1.2.1.Robot Framework Robot Framework支持Python和Jython,本文档针对ubuntu下Python进行讲解 下载地址:https://pypi.p

Robot Framework

http://www.usyiyi.cn/robot_framework/ 1.Robot Framework测试数据以表格形式定义,无论是使用超文本标记语言(HTML),制表符分隔值(TSV),纯文本,或reStructuredText(REST)格式.这些格式及其主要优点和问题的细节,在后面的章节中说明.使用哪种格式依赖于上下文,如果没有特别的需要,建议使用纯文本格式. 2.纯文本中,由于空格被用作分隔符,所有的空单元格必须用${EMPTY}变量或一个反斜杠进行转义.否则,处理空白和其他测试

Robot Framework测试框架学习笔记

一.Robot Framework框架简介 Robot Framework是一种基于Python的可扩展关键字驱动自动化测试框架,通常用于端到端的可接收测试和可接收测试驱动的开发.可以用于测试声明涉及到多种技术和接口的分布式的,异构的应用系统. 测试用例位于HTML或者TSV(以tab分隔值)文件,使用在测试库中实现的关键词来在测试中运行程序.因为Robot Framework 是灵活和可扩展的,所以它很合适用于测试具有多种接口的复杂软件:用户接口,命令行,web service,编程接口等.