Robot Framework自定義測試庫匯入方法 -- Robot Framework
技術標籤:python
1 測試庫放在python的site-packages 路徑下
一般我們自己寫的測試庫會放在 python的site-packages 路徑下,其他第三方庫自動安裝的也都在這個目錄中,這樣在匯入庫的時候,會自動識別。
在python安裝目錄下的 Lib\site-packages 目錄下 新建一個目錄,目錄名就是庫名,如 NewLibrary
在新建的NewLibrary目錄下建立一個python檔案,任何合法的檔名即可,副檔名為py。如:myclass.py
其內容如下
class MyClass(object): 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 庫
*** Test Cases ***
successsd
print msg god
printMsg ss
printmsg yy
增加新的關鍵字
增加新的關鍵字很簡單,只需在MyClass類中增加新的方法即可。如:
class MyClass(object): def __init__(self): pass def printMsg(self,msg): print "hello "+msg def join_info(self,a,b): print a+b
上面介紹了最簡單的自定義模組,雖然簡單,但實際可以滿足大部分自己開發的需求
2. 把自定義的庫放在專案的Library目錄
第一種方法有個不好的地方,就是庫與專案目錄分離,若我想把自定義的庫放在專案的Library目錄中,直接Import就會報failed,找不到這個庫。
找官方文件,裡面給出了具體原因:
http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#module-search-path
python有個模組搜尋路徑,可以自己sys.path看下:
如圖,可以看到,裡面包含了site-packages路徑,所以在這個目錄下的庫是在python的模組搜尋路徑下的。
所以,後面的思路就明確了,把自己專案的路徑新增到python的模組搜尋路徑下,具體有幾種方法可以實現:
命令新增path路徑
import sys
sys.path.append(r'/CODE/robotlib/') # 這裡append函式裡的字串就是你寫的庫檔案的路徑
在site-packages目錄下面新建一個.pth 檔案(以pth作為字尾名) ,將模組的路徑寫進去,可以發現,有些第三方庫也有這個.pth檔案,可以作為參考。
新增後,再次sys.path看下:
自定義的目錄已經在python的模組搜尋路徑下了
請確保庫的檔名和CLASS名一致,這樣 import 庫名的時候,可以省略.py字尾
注意,這裡還有個問題,如果我的庫檔案不在模組搜尋路徑下,是在該路徑的子路徑下面,那其實直接import還是會搜尋不到,這時加上相對路徑即可
Library base_library/Tools.py #加路徑後,需加上.py字尾