RobotFramework学习08-扩展库之python测试库
2018-09-17 本文已影响225人
残阳夕露

python测试库(变量和关键字)
本文包含内容
- python测试库-变量
- python扩展关键字
python测试库-变量
使用python模块文件提供公共变量给RF使用。
只需要直接定义变量就可以了,语法完全就是python
将变量或关键字封装到python文件中
# 变量
MgrLoginUrl = ‘http://localhost/....’
StudentLoginUrl = ’http://localhost/....‘
database = ['127.0.0.1', '3306']
user1 = {'name':'auto' , 'pw':'sdfsddds'}
RF中声明变量文件
*** Settings ***
Variables xxx.py
-
python文件引用时可以使用绝对路径也可以使用相对路径,建议使用相对路径
-
使用相对路径的时候,RF搜索规则和资源文件搜索规则一样:先搜索当前目录下该python文件是否存在,没有的话则根据path路径查找
- 测试套件和py文件在同一目录
# 测试套件中 *** Settings *** # 引入python文件中的变量(xx.py和测试套件在同一个目录下) Variables xxx.py
- 测试套件和py文件不在同一目录
在python的模块搜索路径中搜索,可以用--pythonpath参数
# 测试套件中 *** Settings *** # 引入python文件中的变量(aa在项目目录下,xxx.py在aa目录下) Variables aa/xxx.py
# 运行命令 # 1.通过cd命令进入到项目根目录下 # 2.执行命令```robot --pythonpath . tc/t1.robot``` # 注释:“--pythonpath .”表示设置当前目录到path中
- 命令行参数指定变量文件
使用此方法不需要在robot文件中单独声明
# cfg文件夹和tc文件夹在同一目录(执行命令时的目录) robot --variablefile cfg\cfg.py tc/t1.robot
python扩展关键字
python模块作为测试库(函数)
- 模块文件名作为测试库的名字
- 比如python模块叫MyLibrary,对应的python文件时MyLibrary.py。那么测试库的名字就是MyLibrary
- 定义在python模块文件中的函数,名称前有_前缀的不会作为关键字
```
# 关键字(相当于python中的函数)
def returnlist():
return [1,2]
```
RF引入python模块方法
*** Settings ***
Library xxx # xxx 为python文件xxx.py
- 测试套件与python不在同一目录时,引入方法同python变量的引入方法(
使用--pythonpath
)
注意,此时的引用关键字是Library
- RF使用关键字的时候:
- 中间任意可以加上的空格(不得超过2个)
- 大小写也可以任意
returnlist re tuRnl ist Return Rist
Python类作为测试库(类)
- 比如python文件是tlib2.py
class SubLibrary():
def __init__(self,a=1,b=2):
self.a = a
self.b = b
def returnint(self):
return 3
- 声明(导入的时候会自动默认创建一个实例)
# 不带参数
*** Settings ***
Library tlib2.SubLibrary
# 带参数
*** Settings ***
Library tlib2.SubLibrary 3 4
- 该类中的成员方法,名称前有_前缀的不会作为关键字
- 导入时的参数,对应类的初始化方法
- 如果类和模块文件同名,声明的时候可以省略后面的类名
- 比如python文件是SubLibrary.py
class SubLibrary: def returnint(self):
- 声明
*** Settings *** Library SubLibrary