robot framework 自定義關鍵字詳細過程及debug
在學習RF自定義關鍵字的時候,網上看到有些不夠詳細,最重要的是沒有debug過程,這篇記錄下自己在寫關鍵字時候的除錯過程。
1:
在C:\Python27\Lib\site-packages\ 資料夾下, 新建python package資料夾 ,例如我的是ATestLibrary
建好後的完整路徑:C:\Python27\Lib\site-packages\ATestLibrary\
(Tips:我的python 是安裝在C盤,在建立時,要根據自己的安裝路徑選擇)
2:
在C:\Python27\Lib\site-packages\ATestLibrary\ 資料夾下檢視是否有__init__.py 檔案,若沒有新建__init__.py(空內容檔案)。
建好後的完整路徑:C:\Python27\Lib\site-packages\ATestLibrary\__init__.py
3:
在C:\Python27\Lib\site-packages\ATestLibrary\ 資料夾下,新建自己的moudle,例如我的是test_RF_import.py
程式碼demo:
test_RF_import.py
class myKeyWords(object):
def __init__(self):
pass
def my_key_word(self):
print ('this is my key word')
- 1
- 2
- 3
- 4
- 5
- 6
4:
C:\Python27\Lib\site-packages\ATestLibrary\__init__.py 修改該檔案內容為
__init__.py
# -*- coding: utf-8 -*-
from test_RF_import import myKeyWords
class ATestLibrary(myKeyWords):
ROBOT_LIBRARY_SCOPE = 'GLOBAL'
- 1
- 2
- 3
- 4
- 5
# 特別注意:
在__init__.py檔案中,建立class 時,類名必須和自己的庫資料夾名稱相同。
例如我的類名稱是ATestLibrary,而建立的庫資料夾名也是ATestLibrary→C:\Python27\Lib\sitepackages\ATestLibrary
- 1
- 2
- 3
- 4
5:
在robotframework 中,點選Library 匯入自定義庫
匯入自定義庫檔案ATestLibrary,正確時為灰色字型(匯入庫檔案,就不需要說明了)
執行結果:
Starting test: BetaInterfaceTest xiewm.Testcase.Test My Key Word.test_my_key_word
20160824 16:22:23.640 : INFO : this is my key word
Ending test: BetaInterfaceTest xiewm.Testcase.Test My Key Word.test_my_key_word
- 1
- 2
- 3
完整的檔案結構應該是這樣:
ATestLibrary
——- __init__.py
——- test_RF_import.py
以下自己遇到的一些問題的debug
1:儘量在檔案的開頭加上:# -- coding: utf-8 --,因為python預設編碼是ascii,所以如果程式碼中有(),或中文等等符號,會報錯,提示編碼不正確
2:如果寫的程式碼裡邊有中文,儘量在檔案開頭加上以下3行程式碼
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
- 1
- 2
- 3
3:如果在初始化函式中,定義了形參。則必須在匯入庫的時候,也要提供對應的引數。
不然會提示少給了變數的報錯。
def __init__(self,a,b):
pass
- 1
- 2
4:
修改程式碼後,及時把對應的.pyc檔案刪除並且重啟下robotframework 後,再匯入。
5:如果還是有其他的報錯,請點選Tools→View RIDE log ,檢視並debug。