Robotframework变量知识点总结

目录

  • 变量与常量
  • 常量
    • 环境变量
    • 数值常量
    • 特殊字符常量和系统保留常量
  • Scarlar变量
    • 变量赋值
      • Set 赋值
      • Get 赋值
      • 命令行赋值
    • 变量使用
      • 在判断中使用
      • 字符串使用
  • List变量
    • 变量赋值
      • Set Variable
      • Create List
    • 变量使用
    • List 元素的使用
  • 变量转换
    • List转换成Scarlar
    • Scarlar转换成List
  • 其他变量
  • 变量文件

一,变量与常量

  1. 变量都用{变量名}表示。变量主要有两类:scalar类和List类。Scalar 类表示为 ${变量名},List类表示为 @{变量名}
  2. RF的底层语法是Python,所以不需要特别声明变量,只需要进行初始化赋值。若需要添加声明在TestSuite右键单击,或者Edit区单击“Add Scala”或者“Add List”,添加变量。
  3. 无论是scala变量还是List变量都可以通过Set Variable进行赋值。
  4. 通常情况下,变量都是局部变量,默认情况下各个变量的作用域不同,具体如下:
  • 一个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文件。

你可能感兴趣的:(robotframework,python)