1. 测试库放在python的site-packages 路径下
一般我们自己写的测试库会放在 python的site-packages 路径下,其他第三方库自动安装的也都在这个目录中,这样在导入库的时候,会自动识别。
- 在python安装目录下的 Lib\site-packages 目录下 新建一个目录,目录名就是库名,如 NewLibrary
- 在新建的NewLibrary目录下创建一个python文件,任何合法的文件名即可,扩展名为py。如:myclass.py
其内容如下
class MyClass: def __init__(self): pass def printMsg(self,msg): print "hello "+msg
上面代码定义了一个python类,其中除构造方法 _init_ 外,还定义了一个printMsg方法,该方法其实就是rf中的关键字,可以直接在rf中使用。下面我们介绍。
- 在新建的NewLibrary目录下创建 __init__.py 文件,文件名必须固定这样。该文件的功能,就是把关键字类暴露出来,让rf能知道。
其内容如下:
from myclass import MyClass class NewLibrary(MyClass): ROBOT_LIBRARY_SCOPE = 'GLOBAL'
- 通过前面三个步骤,一个最简单的自定义的NewLibrary库就创建好了,在rf工具中就可以使用了
- 先要导入 NewLibrary 库
使用关键字printMsg。需要说明的是,在rf中引用时,既可以写成 printMsg,也可写成 print msg。一般习惯用空格把单词分开。因为rf关键字不区分大小写。
*** Test Cases *** successsd print msg god printMsg ss printmsg yy
2. 把自定义的库放在项目的Library目录
第一种方法有个不好的地方,就是库与项目目录分离,若我想把自定义的库放在项目的Library目录中,直接Import就会报failed,找不到这个库。
找官方文档,里面给出了具体原因:
http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#module-search-path
python有个模块搜索路径,可以自己sys.path看下:
自定义的目录已经在python的模块搜索路径下了
请确保库的文件名和CLASS名一致,这样 import 库名的时候,可以省略.py后缀
注意,这里还有个问题,如果我的库文件不在模块搜索路径下,是在该路径的子路径下面,那其实直接import还是会搜索不到,这时加上相对路径即可
Library base_library/Tools.py #加路径后,需加上.py后缀