018-08-30 08:39:52
一、变量与常量基础
1.变量标识符
每一个变量都可以用 变量标识符{变量名} 来表示。
Scalar变量 ${var} 单值变量 单值并不仅仅是像字符串、数值这样的,还有可能是个对象或者字典
List变量 @{var} 多值变量 只有带@的变量才能够确认是List型变量,带$的变量取决于它的变量值,才能确定是什么变量,因为变量之间是可以相互转换的
2.变量声明
RF的底层是Python,变量不需要特别声明,只要有初始化赋值即可。
在Test Suite下面可以通过“Add Scale", "Add List"来初始化赋值。
在Test Case中用Log, Log many 来打印Scalar, List变量。如图:
3.变量的作用域
默认情况下,变量的作用域为:
- 一个case里的变量,作用域在这个case内部
- 一个File Suite里的变量,作用域在这个Suite内部
- 一个userkeyword里的变量,作用于在这个Userkeyword内部
变量的作用域是可以改变的,通过关键字的处理:
- Set Global Variable 设定全局级变量。作用域在所有的测试用例和测试套件里都有效
- Set Suite Variable 设定File Suite级变量。作用域在当前的File Suite里有效
- Set Test Variable 设定Case级变量。作用域在当前Case内有有效
4.常量
1)环境变量:标识符为 % ,无论是Windows系统还是Mac系统都可定义自己的环境变量,RF可以打印出Windows or Mac系统的环境变量,但是不可更改
2)数值常量:
在RIDE里所有字符都会被当作字符串,打印出来是u‘2.6‘, u‘ABC‘ 这样子unicode字符串
如果想让一个数字以数值的形式存在,要写成 ${2.6} ,如图:
说明:这里其实是定义了一个 list 变量,用 scalar 的形式展现出来,所以说单值变量的变量类型取决于变量值。
3)特殊字符常量、系统保留常量
在Case里双击一下空白的单元格,按“Ctrl+Alt+空格”,如下图:
特殊字符常量主要有${/} ${:} ${EMPTY} ${Space} ${False} ${True} ${None} ${null} ,其余都是系统保留常量
这里面每个常量的值都可以在右边的提示框里看到其Value, 如果值为空的(除了EMPTY) 在运行时才有它的值。
二、Scalar变量
1.变量赋值
1)Set Variable, Set Variable If
Set Variable If 判断 ${var2} 和 abcd 的值,如果相等,则赋值 ${varif2} 为efgh, 如果不相等,则赋值 ${varif2} 为ace
2) Get Length, Get Time
Get length 是获取字符串的长度, Get Time 是获取时间,如图:
3)命令行赋值
在Run界面的 Arguments里加上一行:-v val1:running, 然后再 Log ${val1}, 看运行结果(从value变成了running)
2.变量的使用
1)在判断中使用,Run Keyword If
若判断条件成立,则运行后面的关键字,若判断条件不成立,则不会做任何操作
如图1,2为成立,图3,4为不成立
2)当字符串使用
字符串的连接,如: Log 123${var1}efgh
字符串的截取,如:想截取 ${var2} 的第三个字符,和第一到三个字符,写成 Log ${var2[2]}, Log ${var2[0:3]}, 字符串的索引下标是从0开始的
3)参与运算, Evaluate
三、List变量
1.变量赋值 Create List
2.变量的使用
F5查看关键字 Run Keyword 的使用说明,对于可传入的参数前面有*(*args 代表不定长参数),就可以用List变量,或者要求传入多个参数的关键字,也可以用List变量,但是List元素个数必须满足关键字所需要的最少参数个数。
Run Keyword 关键字的使用:后面接关键字名,所用的关键字需要传入的参数
3.List 元素的使用
@{list}[index], 元素的下标从0开始
${scalar[index]}, 总结:list 元素的下标在外面, scalar 元素的下标在里面
四、变量的转换
系统会默认 @{var2} 是 ${var2} list 形式, ${var2} 是 @{var2} 的scalar 形式。
转换的限制:被转换的变量要进行赋值(初始化)后,才能进行转换。如果没有进行过赋值,在RIDE里会用”紫色“表示。
五、其他变量
Dictionary 变量:每个元素是一对值,一个Key 对应一个 Value, Key 不能重复。键值对用逗号隔开。
例如:{key1:value1, key2:value2 }
对象变量:将在接口测试 Request 测试库里用到, 假设 ${return} 是接口返回的对象,更多时候使用的是对象的属性值,例如:${return.STATUS} 对象的状态 ${return.CONTENT} 对象的内容
六、变量文件
前面介绍了如何在 Suite 中导入 Library, Resource, 其实还可以导入 Variables 变量文件, 变量文件只支持导入Python的py文件。
例如:
import random
__all__=[‘scalar‘, ‘LIST__var‘, ‘interger‘]
scalar= ‘hello world‘
LIST__var=[‘hello‘, ‘list‘, ‘world‘]
interger=random.randint(1,10)
有几点要注意的,__all__是用来列出这里有哪几个变量的,LIST__var 真实的变量名是var, 只是用LIST__来标明是个list变量, 其他的都是Scalar变量
原文地址:https://www.cnblogs.com/Agnes1994/p/9560271.html