目录
- 变量与常量
- 常量
- 环境变量
- 数值常量
- 特殊字符常量和系统保留常量
- Scarlar变量
- 变量赋值
- Set 赋值
- Get 赋值
- 命令行赋值
- 变量使用
- 在判断中使用
- 字符串使用
- 变量赋值
- List变量
- 变量赋值
- Set Variable
- Create List
- 变量使用
- List 元素的使用
- 变量赋值
- 变量转换
- List转换成Scarlar
- Scarlar转换成List
- 其他变量
- 变量文件
一,变量与常量
- 变量都用{变量名}表示。变量主要有两类:scalar类和List类。Scalar 类表示为 ${变量名},List类表示为 @{变量名}。
- RF的底层语法是Python,所以不需要特别声明变量,只需要进行初始化赋值。若需要添加声明在TestSuite右键单击,或者Edit区单击“Add Scala”或者“Add List”,添加变量。
- 无论是scala变量还是List变量都可以通过Set Variable进行赋值。
- 通常情况下,变量都是局部变量,默认情况下各个变量的作用域不同,具体如下:
- 一个case中的变量,作用域在这个case内部。
- 一个userKeyword里的变量,作用域在这个userKeyword内部。
- 一个文件型suite里的变量,作用域在这个suite内部,* 其下所有case可用该变量,其下的suite文件型无法使用该变量 * 。
二,常量
常量主要有环境变量(%),数值常量( $ ),特殊字符常量($ ),系统保留变量($ )。
- 环境变量
定义: %{变量名称}
修改方式: 只能在定义的地方去修改。RF只能使用,不能编辑 - 数值常量
通常情况下。RIDE中所有字符会被当做字符串,即使变量的值是数值,默认以字符串的形式存在。
定义:${2.6} - 特殊字符常量和系统保留常量
特殊字符常量主要有${/},${:},${EMPTY},${False},${None},${Null},${SPACE},${True},
其都是系统保留常量
三,Scalar变量
(一)变量赋值
Scalar变量赋值方法有三种: set赋值, Get赋值, 命令行赋值。
- Set赋值
${val2} | Set Variable | abcd | ||
---|---|---|---|---|
${val3} | Set Variable If | ‘${val2}’=’abcd’ | efgh | ijk |
第一变量val2赋值为abcd。第二个变量判断如果${val2}的值为abcd则赋值 ${val3}为efgh,否则赋值 ${val3}为ijk
- Get赋值
${get_val1} | Get Length | ${val2} |
---|---|---|
${get_val2} | Get Time |
第一个变量获取的是长度,第二个变量获取的是时间。
- 命令行赋值
-v val:变量值
(二)变量使用
1,在判断中使用
${val2} | Set Variable | abcd | ||
---|---|---|---|---|
${val3} | Set Variable If | ‘${val2}’=’abcd’ | efgh | ijk |
2,字符串使用
2.1,把变量作为字符串的一部分
log | 0123${val2}456 | |
---|---|---|
log | 0123+${val2}456 |
第一行会把 ${val2} 添加到0123和456中间去。第二行会把+ ${val2}添加到0123和456中间去。
2.2 ,字符串截取
log | ${val2[2]} | |
---|---|---|
log | ${val2[0:3)} |
第一行返回${val2}的第3个字符串(python字符串从0开始)。第二行截取下标为0,1,2的字符串(相当于[0:2])。
2.3 ,参与运算
${cal1} | Set Variable | 123 |
---|---|---|
${cal2} | Evaluate | ${cal1}+1 |
返回结果为${cal2}=124
${cal1} | Set Variable | ‘123’ |
---|---|---|
${cal2} | Evaluate | Int(${cal1})+1 |
${cal1}为字符串,需转换成int类后才能改进行Evaluate的加法运算。
四,List变量
(一)变量赋值
Scalar变量赋值方法有两种:Set Variable和Creat Variable
@{val3} | Set Variable | 1 | 2 | 3 |
---|---|---|---|---|
${listVal3} | Create List | 4 | 5 | 6 |
打印之后的结果:@{val3}=[1|2|3]
${listVal3}=[4|5|6]
(二)变量使用
${keyword} Set Variable | log | ||
---|---|---|---|
@{argVal3} | Create List | abcd | WARN |
Run Keyword | ${keyword} | ${argVal3} |
运行结果:
20191230 18:21:52.657 : INFO : ${argVal3} = log
20191230 18:21:52.658 : INFO : @{@{argVal3} = [ abcd | WARN ]
20191230 18:21:52.660 : WARN : abcd
(三) List元素的使用
上面的方法是关于整个List变量的,如果要是用List变量里的元素,会用到两种方法: @{变量名}[index] , ${变量名[index]} 。如果是多维的话就需要多用几个[]。
@{useList} | Create List | a | b | c |
---|---|---|---|---|
log | @{useList}[1] | |||
log | ${useList[1]} |
最终返回结果,两行都是INFO=b
@{listA} | Create List | 1 | 2 | |
---|---|---|---|---|
@{listB} | Create List | 3 | 4 | |
@{listC} | Create List | ${listA} | ${listB} | 5 |
log | @{listC[1]}[1] | |||
log | ${list[1][1]} |
最终返回结果,两行都是4。
特别注意:
1,listC赋值时,listA和listB前面都是$。否则最后listC还是一维的。
2,@{listC[1]}[1]表达式是正确的,@{listC}[1][1]返回的会是INFO=[u’3’,u’4’],[1]。
五,变量转换
(一)List转换成Scalar
有些关键字只接收scalar变量,而实际相传List变量给他,或者反过来,都可以进行变量转换操作。
方法:修改@{argList4}为${argList4}
前提:@{argList4}初始化过
@{argList4} | Create List | abcd | WARN | |
---|---|---|---|---|
log | ${argList4} |
上述方法会将argList4转换为scarlar变量。即使${argList4}没有声明过,因为有了@{argList4},依然可以转换成功。
(二)Scarlar变量转化为List变量
方法: 修改 $ {argList4} 为 @{argList4},并且在 @{argList4} 前后添加一些字符,使其成为字符串
前提:${argList4}初始化过
${argList4} | Create List | abcd | WARN | |
---|---|---|---|---|
log | =@{argList4}= |
INFO : ${a} = [‘WARN’, ‘adcd’]
INFO : =[‘WARN’, ‘adcd’]=
六,其他变量
其实除了Acalar和List变量,RF中还有Dictionary变量和对象变量。
Dictionary变量的每个元素是一对值,如{key1:val1,key2:val2}。
对象变量在接口测试中的Request测试库里涉及到。加入$ {return}是接口返回的对象。那么$ {return.STATUS}表示对象的状态,$ {return.CONTENT}表示对象的内容。
七,变量文件
变量文件只支持python的py文件。