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,要想清楚你到底要哪层的,不要写少了或者写多了。
***微信扫一扫,关注“python测试开发圈”,了解更多测试教程!***
转载于:https://www.cnblogs.com/guanfuchang/p/4051751.html
Robot Framework--08 List Variables-List变量及其用法相关推荐
- Robot Framework用户指南
Robot Framework用户指南 版本2.8.6 版权所有©诺基亚解决方案和网络2008-2014 根据知识共享署名3.0 Unported许可授权 目录 1开始 1.1简介 1.2版权和许可 ...
- Python3+Robot Framework+RIDE安装使用教程
Python3+Robot Framework+RIDE安装使用教程 一.说明 Python3----网上很多文章都是用Python2,Robot Framework的部分文档没更新也直接写着不支持P ...
- Robot Framework自动化测试教程-通过RIDE创建工程、测试套、测试用例、测试资源、变量文件,引入测试库
1. 创建测试工程 RIDE工具中有Project概念,实际上Robot Framework中是没有工程的概念,可以理解为最顶层的测试套. 1.1. 新建测试工程 点击 File–>New Pr ...
- Robot Framework 内置变量
Robot Framework 内置变量 转自:https://blog.csdn.net/qq_26886929/article/details/53907755 Robot Framework 内 ...
- python变量定义 关键字_(四)Robot Framework 基础关键字
相信你已经迫不及待的要拿 Robot Framework 写自动化测试项目了,先别着急! 当你要使用 Python 去开发一个网站的时候,是不是要先从 Python 的基本语法学起? Builtin ...
- 【转】Robot Framework 快速入门
目录 介绍 概述 安装 运行demo 介绍样例应用程序 测试用例 第一个测试用例 高级别测试用例 数据驱动测试用例 关键词keywords 内置关键词 库关键词 用户定义关键词 变量 定义变量 使用变 ...
- [原创] Robot framework 基于关键字、BDD驱动的自动化测试框架
英文好的同学请直接移驾 robot framework 的官网 喔- Robot Framework简介 如其名,robot framework (以下简称RF),它不是工具,是个通用的框架,利用关键 ...
- Robot Framework - Variable file
RF导入变量文件 在Setting中导入 Setting中导入变量文件时,和导入外部资源文件类似.变量文件的路径可以包含参数,如果一个变量文件接受参数,那么它们也可以是变量. Path最好使用相对路径 ...
- Robot Framework + Selenium library + IEDriver环境搭建
转载:https://www.cnblogs.com/Ming8006/p/4998492.html#c.d 目录: 1 安装文件准备 2 Robot框架结构 3 环境搭建 3.1 安装Pytho ...
- Robot Framework(十四) 扩展RobotFramework框架——创建测试库
4.1创建测试库 Robot Framework的实际测试功能由测试库提供.有许多现有的库,其中一些甚至与核心框架捆绑在一起,但仍然经常需要创建新的库.这个任务并不复杂,因为正如本章所示,Robot ...
最新文章
- 修改windows系統下xampp中apache端口被其他程式占用的問題
- 数据结构C语言版之查找(折半选择快速等)
- C语言按行和列求平均成绩代码(指针,二维数组)
- 华为云文字识别深层算法突破 助力复产复工
- 按大小排序php,php中按大小进行排序的函数有哪些
- Python中使用Unicode对中文进行编码和解码
- Win10重装系统后如何合并分区?
- Android开源项目推荐之「图片加载到底哪家强」
- php给留言分配id_php建立简单的用户留言系统
- Qt编写Modbus从机程序
- 百色职称计算机,百色报考职称高级
- 网易mysql微专业_网易MySQL数据库工程师微专业学习笔记(一)
- 学成在线-第13天-讲义-在线学习 HLS
- K210入门必看(MAIX DOCK)(一)
- python网络部分
- 利用python+迅雷批量下载视频
- 大一作业HTML网页作业:中华传统文化题材网页设计(纯html+css实现)科普网
- 离线安装VS2019教程
- 成年人的崩溃一触即发,掌握学习能力才能突破认知结界,干货满满!并带你分享你如何掉入互联网大佬的各种陷阱...
- 斯坦福 AI Lab 主任 Chris Manning:人工智能研究的最新趋势和挑战
热门文章
- hdu 1026 Ignatius and the Princess I(优先队列+bfs+记录路径)
- PyCharm 3.0 发布,提供免费开源版本
- Java中发送结构体
- s5p4418 android 驱动 hal 应用之led 串口 rs485 can总线应用(app 有源码)
- php屏幕共享功能,利用无线投屏技术同屏直播,精彩随时共享
- 汉诺塔算法python_经典算法:汉诺塔
- 浅谈语音质量保障:如何测试 RTC 中的音频质量?
- 冯诺依曼架构的 IO 鸿沟,谁能来填补?
- 阿里云AIoT正式发布IoT安全中心和IoT Studio 3.0,进一步巩固AIoT云网边端基础能力
- 阿里云RDS vs 自建MySQL,这篇评测终结你的选择困难症!