转自: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变量及其用法相关推荐

  1. Robot Framework用户指南

    Robot Framework用户指南 版本2.8.6 版权所有©诺基亚解决方案和网络2008-2014 根据知识共享署名3.0 Unported许可授权 目录 1开始 1.1简介 1.2版权和许可 ...

  2. Python3+Robot Framework+RIDE安装使用教程

    Python3+Robot Framework+RIDE安装使用教程 一.说明 Python3----网上很多文章都是用Python2,Robot Framework的部分文档没更新也直接写着不支持P ...

  3. Robot Framework自动化测试教程-通过RIDE创建工程、测试套、测试用例、测试资源、变量文件,引入测试库

    1. 创建测试工程 RIDE工具中有Project概念,实际上Robot Framework中是没有工程的概念,可以理解为最顶层的测试套. 1.1. 新建测试工程 点击 File–>New Pr ...

  4. Robot Framework 内置变量

    Robot Framework 内置变量 转自:https://blog.csdn.net/qq_26886929/article/details/53907755 Robot Framework 内 ...

  5. python变量定义 关键字_(四)Robot Framework 基础关键字

    相信你已经迫不及待的要拿 Robot Framework 写自动化测试项目了,先别着急! 当你要使用 Python 去开发一个网站的时候,是不是要先从 Python 的基本语法学起? Builtin ...

  6. 【转】Robot Framework 快速入门

    目录 介绍 概述 安装 运行demo 介绍样例应用程序 测试用例 第一个测试用例 高级别测试用例 数据驱动测试用例 关键词keywords 内置关键词 库关键词 用户定义关键词 变量 定义变量 使用变 ...

  7. [原创] Robot framework 基于关键字、BDD驱动的自动化测试框架

    英文好的同学请直接移驾 robot framework 的官网 喔- Robot Framework简介 如其名,robot framework (以下简称RF),它不是工具,是个通用的框架,利用关键 ...

  8. Robot Framework - Variable file

    RF导入变量文件 在Setting中导入 Setting中导入变量文件时,和导入外部资源文件类似.变量文件的路径可以包含参数,如果一个变量文件接受参数,那么它们也可以是变量. Path最好使用相对路径 ...

  9. Robot Framework + Selenium library + IEDriver环境搭建

    转载:https://www.cnblogs.com/Ming8006/p/4998492.html#c.d 目录: 1 安装文件准备 2 Robot框架结构 3 环境搭建   3.1 安装Pytho ...

  10. Robot Framework(十四) 扩展RobotFramework框架——创建测试库

    4.1创建测试库 Robot Framework的实际测试功能由测试库提供.有许多现有的库,其中一些甚至与核心框架捆绑在一起,但仍然经常需要创建新的库.这个任务并不复杂,因为正如本章所示,Robot ...

最新文章

  1. 修改windows系統下xampp中apache端口被其他程式占用的問題
  2. 数据结构C语言版之查找(折半选择快速等)
  3. C语言按行和列求平均成绩代码(指针,二维数组)
  4. 华为云文字识别深层算法突破 助力复产复工
  5. 按大小排序php,php中按大小进行排序的函数有哪些
  6. Python中使用Unicode对中文进行编码和解码
  7. Win10重装系统后如何合并分区?
  8. Android开源项目推荐之「图片加载到底哪家强」
  9. php给留言分配id_php建立简单的用户留言系统
  10. Qt编写Modbus从机程序
  11. 百色职称计算机,百色报考职称高级
  12. 网易mysql微专业_网易MySQL数据库工程师微专业学习笔记(一)
  13. 学成在线-第13天-讲义-在线学习 HLS
  14. K210入门必看(MAIX DOCK)(一)
  15. python网络部分
  16. 利用python+迅雷批量下载视频
  17. 大一作业HTML网页作业:中华传统文化题材网页设计(纯html+css实现)科普网
  18. 离线安装VS2019教程
  19. 成年人的崩溃一触即发,掌握学习能力才能突破认知结界,干货满满!并带你分享你如何掉入互联网大佬的各种陷阱...
  20. 斯坦福 AI Lab 主任 Chris Manning:人工智能研究的最新趋势和挑战

热门文章

  1. hdu 1026 Ignatius and the Princess I(优先队列+bfs+记录路径)
  2. PyCharm 3.0 发布,提供免费开源版本
  3. Java中发送结构体
  4. s5p4418 android 驱动 hal 应用之led 串口 rs485 can总线应用(app 有源码)
  5. php屏幕共享功能,利用无线投屏技术同屏直播,精彩随时共享
  6. 汉诺塔算法python_经典算法:汉诺塔
  7. 浅谈语音质量保障:如何测试 RTC 中的音频质量?
  8. 冯诺依曼架构的 IO 鸿沟,谁能来填补?
  9. 阿里云AIoT正式发布IoT安全中心和IoT Studio 3.0,进一步巩固AIoT云网边端基础能力
  10. 阿里云RDS vs 自建MySQL,这篇评测终结你的选择困难症!