1. 程式人生 > >robot framework 自定義關鍵字詳細過程及debug

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,而建立的庫資料夾名也是ATestLibraryC:\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。