RF申明变量:python
首先咱们要建立Variables表api
*** Settings ***less
${LoginUrl} http://cloud.innovpowerf.com/Account/Login
函数
${StudentLoginUrl} http://localhost/student/login测试
@{database} 127.0.0.1 3306 ----------------List变量命令行
&{user} name=username pw=password ------------------Dict变量资源
使用变量文件:get
能够使用python模块文件提供公共变量给RF使用,只须要直接定义变量就能够了。语法彻底就是python语法。如:class
StudentLoginUrl = 'http://localhsot/studfent/login'import
RF申明使用变量文件:
*** Setings ***
Variables ../cfg/cfg.py
*注意* :变量文件申明时,能够使用绝对路径,也能够使用相对路径。
使用相对路径时RF搜索规则和资源文件搜索规则同样:
- 先在相对当前文件的目录 匹配搜索;
- 在python的模块搜索路径中搜索,能够用 --python参数 如:robot --python .tc/t1.robot
命令行参数指定变量文件:robot --variablefile cfg\cfg.py tc/t1.robot
也能够设置全局变量而后执行(写成全局的配置文件):
set pythonpath=.
robot tc/t1.robot
python扩展关键字:
python模块做为关键字:模块文件名做为测试库的名字
好比 python模块叫MyLibrary,对应的python文件就是MyLibrary.py,那么测试库的名字就是MyLibrary
定义在python模块文件中的函数,名称前有_前缀的不会做为关键字
def returnList1():
return[1, 2]
def _returnList2():
return[1, 2]
要保证其在python模块的搜索路径中,这样RF才能找到它。
* 直接设置环境变量
* 用 --python参数 如:robot --pythonpath lesson1 lesson1/tmp.robot
若是在lesson里面的某个目录中执行呢? 如 robot --pythonpath .. ../tmp2.robot
RF使用关键字的时候: - 中间能够加上任意的空格
- 大小写也能够任意
本身定义关键字的时候:以下
from robot.api.deco import keyword # 装饰器
@keyword
def returnList():
return[1, 2]
python类做为测试库:
* 好比:python文件是tlib2.py
class SubLibrary:
def returnInt(self):
return 3
def _returnInt(self)
return 4
* 申明
*** Settings ***
Library tlib2.SubLibrary
* 该类中的成员方法,名称前有_前缀的不会做为关键字
* 导入时的参数,对应类的初始化方法
* 若是类和模块文件同名,申明的时候就能够省略后面的类名
python 扩展库的搜索规则:
彻底是按照python的模块的搜索规则来的
- 若是在包内,pylib/login/rightpass.py
*** Settings ***
Library pylib.login.rightpass
---------------------------------------------------------------------
Library pylib/login/rightpass.py
- 在Settings中 申明资源文件和变量文件:
路径、目录之间的分隔符,不用点 . 而是用斜杠 /
- 在Settings申明测试库:
路径、目录之间的分隔符,能够用点 . 也能够用斜杠 /
路径分隔符 用点后面不加py,用斜杠后面加.py