作者:科雷软件测试

前言

RobotFramework框架中我们之前合集的文章学习了如何使用内置库/编写用例/编写关键字/编写resource文件/执行用例等功能,本次主要给大家展示下RF框架下各类变量的使用方式。

学习目录

1、testsuite中定义变量

1.1 在testsuite中定义常量变量

1.2 在testsuite中定义List变量

1.3 在testsuite中定义Dict变量

2. 在测试案例或者keyword中定义常量变量、List变量、Dict变量

3. 变量作用域

4. 导入变量文件

5.执行用例时使用变量或者变量文件

5.1 执行用例语句中使用变量

5.2在执行用例中使用变量文件

1、testsuite中定义变量

1.1 在testsuite中定义常量变量

选择‘Add Scalar’,在弹出的对话框中,定义比如ip地址和端口变量

定义后如下,变量名称前面的符号为$。

在测试套件下创建的测试用例都可以引用上面定义的变量

用例执行后,正常打印变量值

1.2 在testsuite中定义List变量

选择‘Add List’,创建列表变量,比如定义多个端口列表

定义之后如下所示,变量名称前面的符号为@。

在测试用例中循环打印List变量

用例执行结果如下

1.3 在testsuite中定义Dict变量

选择‘Add Dict’,创建字典变量,比如定义多个IP地址和端口的字典

定义之后如下所示,变量名称前面的符号为&。

在测试用例中循环打印Dict变量值

用例执行结果如下

Tips:RF使用熟练后,可在文本文件中直接编辑如上变量,文件如下:

2. 在测试案例或者keyword中定义常量变量、List变量、Dict变量

常用到的关键字如下:更详细的描述请跳转内置库BuiltIn介绍

  • 使用Set Variable定义普通变量
  • 使用Create List 定义List变量
  • 使用Create Dictionary定义Dict变量

如上关键字是RF中默认BuiltIn中的常用关键字,可执行F5查看其他关键字用法。

3. 变量作用域

  • testcase里的变量,作用域在testcase内部。
  • userkeyword里的变量,作用域在userkeyword内部。
  • 文件型suite里的变量,作用域在suite内部,所有下级case都可以使用。
  • 目录型suite里的变量,作用域在目录内,但是它下级文件型suite是无法使用的,所以一般不在目录下新增变量。

变量的作用域是可以改变的,通过一些关键字的处理,对变量进行作用域的改变,常用的关键字有:

  • Set Global Variable为设定全局变量。当执行过这个设置后,这个变量在所有testcase和testsuite中都有效
  • Set Suite Variable为设定File Suite级变量。当执行过这个设置后,这个变量在当前的File Suite内都有效
  • Set Test Variable为设定Case级变量。当执行过这个设置后,这个变量在当前的Test Case内有效

4. 导入变量文件

1、创建一个.py文件,在文件中定义变量。举例:创建ip_port.py,变量设置如下:

#定义变量
ip_addr = '192.168.1.2'
port = 9090
port_list = [9090,2002,4005]
ip_port_dict={'ip_port_1':'192.168.1.2:9090','ip_port_2':'192.168.2.3:9091'}

2、在testsuite或者keyword、或者resource中导入变量文件。

3、 在测试用例中使用变量文件中的变量(如果导入多个变量文件,注意变量名称不要重复)

4、执行用例成功,结果如下:

5.执行用例时使用变量或者变量文件

5.1 执行用例语句中使用变量

1、在testcase中打印变量${ip_addr_enter},该变量没有事先定义。

2、再行执行用例中定义变量,添加-v参数,并执行,结果如下:

5.2在执行用例语句中使用变量文件

1、在project目录下创建config文件夹存放变量文件ip_port.py,文件中定义变量ip_addr_enter

ip_addr_enter = ‘192.168.1.2:9090’

2、执行用例时添加--variablefile参数,使用变量文件

总结:在RF中有多种定义变量、使用变量的方法,可以根据项目大小,个人喜好等灵活使用

共勉: 东汉·班固《汉书·枚乘传》:“泰山之管穿石,单极之绠断干。水非石之钻,索非木之锯,渐靡使之然也。”

-----指水滴不断地滴,可以滴穿石头;

-----比喻坚持不懈,集细微的力量也能成就难能的功劳。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐