【robotframework之八】自定义库

一、前言

      robotframework虽然提供了很多的关键字,但是在实际使用的时候,我们总会感觉有的关键字不符合自己的需求,或者我需要实现某一个功能,但是robotframework没有提供实现该功能的关键字,这个时候,我们就需要自己来定义关键字了,直接上例子。

 

二、直接导入Python文件

1、首先进入Python的site-packages目录,我这里的目录是:C:\Python27\Lib\site-packages

2、为了方便管理,我们在site-packages目录下新建一个文件夹,命名为:custometest

3、新建一个Python文件printlog,里面的内容为:

#-*- coding:utf-8 -*-
'''
    created by hch 2019-06-26
'''


class printlog():

    def printA():
        print("hello word")

 

4、在robotframework导入printlog.py

 

【robotframework之八】自定义库_第1张图片

5、导入成功后查看,library为黑色,代表导入成功(红色代表存在错误导入不成功)

【robotframework之八】自定义库_第2张图片

6、F5查看关键字,自定义的Print A展示在关键字列表

【robotframework之八】自定义库_第3张图片

三、导入包

      一个完整的项目需要定义多个关键字,如果都写在一个文件里面会难以管理,很多时候我们都会根据具体功能来创建不同的文件来进行管理,比如查看robotframework本身的库,我们可以看到浏览器、元素等都是使用不同的Python文件来管理的。

 

【robotframework之八】自定义库_第4张图片

      假如创建了多个文件,每次都是使用导入Python的方式,无疑将会需要导入非常多的文件,那么我们可不可以直接导入custometest文件夹呢?

【robotframework之八】自定义库_第5张图片

     导入的库显示为红色,代表导入失败,查看导入日志:

 

提示没有名为custometest的模块,查看Python的相关定义:

 

在导入一个包的时候,Python 会根据 sys.path 中的目录来寻找这个包中包含的子目录。
目录只有包含一个叫做 __init__.py 的文件才会被认作是一个包

那么我们在custometest下面加一个 __init__.py文件看看,新建 __init__.py文件,里面内容如下:

#-*- coding:utf-8 -*-
'''
    created by hch 2019-06-26
'''

from custometest.printlog import printlog

__version__ = '1.0'

class custometest(printlog):
    ROBOT_LIBRARY_SCOPE = 'GLOBAL'

重启robotframework,导入custometest,导入的库显示为黑色导入成功

【robotframework之八】自定义库_第6张图片

F5查看关键字,自定义的Print A展示在关键字列表

【robotframework之八】自定义库_第7张图片

那么多个文件要怎么处理呢?

在custometest下面新建一个Python文件:printOther.py,代码如下:

#-*- coding:utf-8 -*-
'''
    created by hch 2019-06-26
'''


class printOther():

    def printB():
        print("hello python")

修改 __init__.py文件:

#-*- coding:utf-8 -*-
'''
    created by hch 2019-06-26
'''

from custometest.printlog import printlog
from custometest.printOther import printOther

__version__ = '1.0'

class custometest(printlog,printOther):
    ROBOT_LIBRARY_SCOPE = 'GLOBAL'

重启robotframework,F5查看关键字:

【robotframework之八】自定义库_第8张图片

你可能感兴趣的:(robotframework)