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

一、变量的声明

1、变量标识符

每个变量都可以用  变量标识符{变量名}    来进行表示,变量标识符在之前用户关键字的地方介绍了一下,Scalar变量用 $ 作为标识符,List型变量用 @ 作为标识符,不过这只能作为一个初步的区分,因为同样在之前的文章里,大家应该也看到了,使用$ 的变量,实际上也可以在接收List值后转化成List变量。转化的内容会在List变量里介绍。

2、变量声明

其实这里没有什么特别的变量声明,因为RF底层是Python,所以他的语法也有些类似,变量不需要特定声明,只要有初始化赋值即可使用。

如果硬要说有声明,那可以把我们在TestSuite下面手动添加的变量理解为声明吧。比如我们可以在TestSuite上点右键或者在Edit区点Add Scalar或Add List来新增变量。

实际上也可以看做另一种形式的变量赋值,一般相当于使用Set Variable进行初始化赋值。

3、变量赋值

赋值也是有几种的,根据自己的需求进行处理吧。

1)Set 赋值

通常这种方式主要使用Set Variable或类似的使用了Set的关键字对变量进行赋值。例如:

2)Get 赋值

主要用于返回值上,包括系统关键字的返回值和用户关键字的返回值(从广义上说,Set那个也是返回值),例如:

之前的用户关键字里也有很多例子。

3)运行时赋值

详见流程与数据分离最后一篇,使用小v 的argument。

特别注意:如果一个变量没有经过赋值,使用时会报错的。

4、变量的作用域

通常情况下,每个变量默认都是局部变量。

一个case里的变量,作用域在这个case内部;

一个userkeyword里的变量,作用域在这个userkeyword内部;

一个文件型suite里的变量,作用域在这个suite内部,所有下面的case也都可以使用。

一个目录型suite里的变量,作用域在这个目录内,他下面的文件型suite是无法使用的,所以一般在目录下新增变量没有太大意义。

作用域是可以修改的,即通过一些系统关键字,对变量进行作用域的设定,常用的关键字有:

Set Global Variable ——设定全局级变量

Set Suite Variable ——设定suite级变量

Set Test Variable ——设定case级变量

二、变量的使用

其实使用变量我觉得不需要说太多了,变量的赋值可以看一下用户关键字的返回值部分,里面的单个返回值和多个返回值其实就是给单个变量赋值和多个变量赋值的例子了。

这里再列几种之前没有写过的例子吧。

1、在判断中使用

例如这样写,在第二行的判断中可以直接写判断条件,现在的条件成立,于是运行结果如下:

2、字符串使用

如果想把变量作为一个字符串的一部分,可以直接这样写

运行结果如下:

实际上默认情况下RF里的变量都是字符型的,并且两个字符串连接不要加什么符号,直接连起来就行了。

如果你写成aaa+${text}bbb,最终结果就是aaa+123bbb,他会把你写的任何内容都当作字符串的。

3、参与运算

看了上面的例子之后,可能有人说我想用123作为数值进行计算该怎么用。

这里要用到一个关键字Evaluate。先看个例子:

运行结果如下:

他的作用是可以让你加载Python的一些库,依赖于Python的语法,相当于直接运行对应的Python语句得到结果。

像上面的例子没有加载库,因为加减乘除这些是Python基本库就有的。下面放一个加载Python库的,如下图,他加载了random和sys两个库,并使用相应的语句生成一个随机数。

运行结果:

具体可以参考一下RF的userguide文档中BuiltIn部分。

Robot Framework--07 变量的声明、赋值及其使用的更多相关文章

  1. Robot Framework:变量与运算

    设置变量                                                                                                ...

  2. robot framework —— 变量文件

    何为变量文件? 变量文件中包含了测试数据中的变量.虽然变量可以通过变量表格中创建, 或者通过命令行设置, 不过这些方法有所局限, 而变量文件可以动态地创建任意类型的变量. 变量文件一般由Python模 ...

  3. robot framework学习笔记之二———变量

    Robot Framework的变量分为标量, 列表和字典, 分别使用语法格式 ${SCALAR}, @{LIST} 和 &{DICT} 来定义. 此外, 环境变量可以直接使用语法 %{ENV ...

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

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

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

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

  6. robot framework 笔记(一)

    背景: 平时使用rf时会用到一些方法,长时间不用就会忘记,本文用来记录当做自己的小笔记 内容持续更新中········ 一.robot framework 大小写转换 1.转换小写: ${low} E ...

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

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

  8. Robot Framework(六)变量

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

  9. Robot Framework(9)- 使用变量文件

    如果你还想从头学起Robot Framework,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1770899.html 啥是变量文件 变 ...

随机推荐

  1. Java设计模式(二) 观察者模式

    观察者模式: 定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,他的所有依赖者都会受到通知并自动更新. 1,定义事件源接口 package com.pattern.observer; pub ...

  2. 【BZOJ 3735】苹果树 树上莫队(树分块+离线莫队+鬼畜的压行)

    2016-05-09 UPD:学习了新的DFS序列分块,然后发现这个东西是战术核导弹?反正比下面的树分块不知道要快到哪里去了 #include<cmath> #include<cst ...

  3. 通过javascript在网页端生成zip压缩包并下载

    zip.js是什么 zip.js的github项目地址:http://gildas-lormeau.github.io/zip.js/ 通过zip.js封装一个能在网页端生成zip文件的插件, 直接在 ...

  4. java 读取数据库中表定义

    将数据库中的表信息读取出来 package com.cloud.smartreport.utils; import java.sql.Connection; import java.sql.Datab ...

  5. 关于在Eclipse中运行java程序报出:The project:XXXX which is referenced by the classpath10

    1.work_space名称与project是否一样,如果是一样的可能会导致错误. 2.project所在的文件夹中的.mymetadata文件中定义的project-module名称是否与proje ...

  6. 【POJ 2942】Knights of the Round Table(点双连通分量,二分图染色)

    圆桌会议必须满足:奇数个人参与,相邻的不能是敌人(敌人关系是无向边). 求无论如何都不能参加会议的骑士个数.只需求哪些骑士是可以参加的. 我们求原图的补图:只要不是敌人的两个人就连边. 在补图的一个奇 ...

  7. Sublime Text 3 python和Package Control配置方法

    (如果下面的方法试了Packages control功能还是不能用参考这个方法: 1.直接把C:\Sublime Text 3x64\Data\Packages\   目录下原有的Packages c ...

  8. Mysql 中 iddata1的缩小步骤

    原因就不多说了,,,, 直接上干货. 1. 备份数据库 mysqldump -q -uroot -ppassword --add-drop-table --all-databases >all1 ...

  9. ActiveMQ发消息和收消息

    来自:http://blog.163.com/chengwei_1104/blog/static/53645274201382315625329/ ActiveMQ 是Apache出品,最流行的,能力 ...

  10. oracle的resetlogs机制浅析(转)

    文章转自:http://blog.csdn.net/wyzxg/article/details/5869543 alter database open resetlogs 这个命令我想大家都很熟悉了, ...