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变量。如图:

  Robot Framework (六)变量和常量

  Robot Framework (六)变量和常量

  Robot Framework (六)变量和常量

  Robot Framework (六)变量和常量

  Robot Framework (六)变量和常量

  Robot Framework (六)变量和常量

  Robot Framework (六)变量和常量

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系统的环境变量,但是不可更改

  Robot Framework (六)变量和常量

  Robot Framework (六)变量和常量

 

  2)数值常量:

  在RIDE里所有字符都会被当作字符串,打印出来是u'2.6', u'ABC' 这样子unicode字符串

  如果想让一个数字以数值的形式存在,要写成 ${2.6} ,如图:

  Robot Framework (六)变量和常量

  Robot Framework (六)变量和常量

  说明:这里其实是定义了一个 list 变量,用 scalar 的形式展现出来,所以说单值变量的变量类型取决于变量值。

  3)特殊字符常量、系统保留常量

  在Case里双击一下空白的单元格,按“Ctrl+Alt+空格”,如下图:

  Robot Framework (六)变量和常量

  特殊字符常量主要有${/}  ${:}  ${EMPTY}  ${Space}  ${False}   ${True}   ${None}   ${null}  ,其余都是系统保留常量

  这里面每个常量的值都可以在右边的提示框里看到其Value, 如果值为空的(除了EMPTY) 在运行时才有它的值。

 

二、Scalar变量

  1.变量赋值

  1)Set Variable, Set Variable If

  Robot Framework (六)变量和常量

  Robot Framework (六)变量和常量

  Set Variable If 判断 ${var2} 和 abcd 的值,如果相等,则赋值 ${varif2} 为efgh, 如果不相等,则赋值  ${varif2} 为ace

  2) Get Length, Get Time

  Get length 是获取字符串的长度, Get Time 是获取时间,如图:

  Robot Framework (六)变量和常量

  Robot Framework (六)变量和常量

  3)命令行赋值

  在Run界面的 Arguments里加上一行:-v val1:running, 然后再 Log ${val1}, 看运行结果(从value变成了running)

  Robot Framework (六)变量和常量

  Robot Framework (六)变量和常量

  Robot Framework (六)变量和常量

  2.变量的使用

  1)在判断中使用,Run Keyword If

  若判断条件成立,则运行后面的关键字,若判断条件不成立,则不会做任何操作

  如图1,2为成立,图3,4为不成立

  Robot Framework (六)变量和常量

  Robot Framework (六)变量和常量

  

  Robot Framework (六)变量和常量

  

  Robot Framework (六)变量和常量

  2)当字符串使用

  字符串的连接,如: Log     123${var1}efgh

  字符串的截取,如:想截取 ${var2} 的第三个字符,和第一到三个字符,写成 Log   ${var2[2]},   Log   ${var2[0:3]}, 字符串的索引下标是从0开始的

  Robot Framework (六)变量和常量

  Robot Framework (六)变量和常量

  3)参与运算, Evaluate

  Robot Framework (六)变量和常量

  Robot Framework (六)变量和常量

  Robot Framework (六)变量和常量

  Robot Framework (六)变量和常量

  

三、List变量

  1.变量赋值 Create List

  Robot Framework (六)变量和常量

  Robot Framework (六)变量和常量

  2.变量的使用

  F5查看关键字 Run Keyword 的使用说明,对于可传入的参数前面有*(*args 代表不定长参数),就可以用List变量,或者要求传入多个参数的关键字,也可以用List变量,但是List元素个数必须满足关键字所需要的最少参数个数。

  Run Keyword 关键字的使用:后面接关键字名,所用的关键字需要传入的参数

  Robot Framework (六)变量和常量

  Robot Framework (六)变量和常量

  Robot Framework (六)变量和常量

  3.List 元素的使用

  @{list}[index], 元素的下标从0开始

  ${scalar[index]}, 总结:list 元素的下标在外面, scalar 元素的下标在里面

  Robot Framework (六)变量和常量

  Robot Framework (六)变量和常量

 

四、变量的转换

  系统会默认 @{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文件。

  Robot Framework (六)变量和常量

  例如:

  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变量

  

 

相关文章: