常量主要有环境变量(%),数值常量( $ ),特殊字符常量($ ),系统保留变量($ )。
${/},${:},${EMPTY},${False},${None},${Null},${SPACE},${True},
其都是系统保留常量Scalar变量赋值方法有三种: set赋值, Get赋值, 命令行赋值。
${val2} | Set Variable | abcd | ||
---|---|---|---|---|
${val3} | Set Variable If | ‘${val2}’=’abcd’ | efgh | ijk |
第一变量val2赋值为abcd。第二个变量判断如果${val2}的值为abcd则赋值 ${val3}为efgh,否则赋值 ${val3}为ijk
${get_val1} | Get Length | ${val2} |
---|---|---|
${get_val2} | Get Time |
第一个变量获取的是长度,第二个变量获取的是时间。
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的加法运算。
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变量里的元素,会用到两种方法: @{变量名}[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]。
有些关键字只接收scalar变量,而实际相传List变量给他,或者反过来,都可以进行变量转换操作。
方法:修改@{argList4}为${argList4}
前提:@{argList4}初始化过
@{argList4} | Create List | abcd | WARN | |
---|---|---|---|---|
log | ${argList4} |
上述方法会将argList4转换为scarlar变量。即使${argList4}没有声明过,因为有了@{argList4},依然可以转换成功。
方法: 修改 $ {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文件。