RF框架自定義測試庫開發


靜態庫

方法(methods)直接映射為關鍵字名稱。關鍵字接受和方法相同的參數, 通過拋異常來 報告錯誤, 通過往標准輸出里寫入來寫 log, 同時可以通過return 來返回結果。

 創建步驟:

▲ 首先,在D:\xxxxx\Lib\site-packages目錄下新建包名【比如MyLibrary】

▲ 其次,在__init__.py文件用於定義自定義庫的相關信息,需要用到的keywords調用繼承和聲明。

注意:類名必須跟創建的包名MyLibrary一模一樣,否則導入庫會失敗。

▲ 再次,在D:\xxxxxx\Lib\site-packages/MyLibrary目錄下新建version.py文件用於描述自定義測試庫的版本信息

▲ 最后, MyLibrary目錄下新建MyKeywords類文件,用於完成想封裝的各項功能方法,在函數定義文檔注釋用於導入RF框架,會顯示該庫的關鍵字文檔內容信息

RIDE中導入庫,用文件夾名字導入就行。

如果有多類需要引用,比如引用MyKeywords和MyTest1類,如下方法:

  • 導入測試庫

  • 可看測試庫信息

  • 執行腳本

  • 輸出結果

動態庫

RF的動態API方式,是利用get_keyword_names、run_keyword、get_keyword_arguments、 get_keyword_documentation四個固定名稱的方法來運行關鍵字。只要你創建的類有這四個方法(主要是前兩個),就可以讓RF識別關鍵字。

動態庫和混合庫定義版本信息和init文件方法是一樣,只是類文件封裝方法及機制處理不同。

  • RF的動態API方式,是利用get_keyword_names、run_keyword、get_keyword_arguments、 get_keyword_documentation四個固定名稱的方法來運行關鍵字,只要你創建的類有這四個方法(主要是前兩個),就可以讓RF識別關鍵字。
  • get_keyword_names方法實際是告訴RF,我們的庫中有哪些關鍵字。RF會從get_keyword_names方法的返回值中讀取關鍵字名稱。

  • run_keyword方法則實際執行關鍵字對應的代碼。run_keyword第一個參數是需要執行的關鍵字的名稱,第二個參數是關鍵字的參數。

  • get_keyword_arguments方法告訴RF,每個關鍵字的參數是什么樣的。它的參數是關鍵字的名稱,返回值則是關鍵字的參數。

  • get_keyword_documentation方法告訴RF,每個關鍵字的說明文檔的內容。

導入庫后,查看信息如下圖所示:

混合庫

顧名思義,混合API方式是靜態API和動態API方式的混合使用。混合API方式,使用get_keyword_names方法告知RF關鍵字有哪些,但是不使用run_keyword方法執行關鍵字。執行方式和靜態API相同,執行和關鍵字同名的方法。

▲ 這個例子中,使用get_keyword_names方法告訴RF有“first_keyword”和"second_keyword"兩個關鍵字。其中 “first_keyword”關鍵字執行first_keyword方法的代碼。執行"second_keyword"關鍵字時,由於沒有對應的方法, 所以RF先執行“__getattr__”方法,然后獲取“__getattr__”方法返回的值。

▲ 注意:這里返回的值是一個可以被RF執行的方法(或函 數),而不是一個字符串。RF找到這個方法(或者函數)后,再執行代碼。

測試庫文檔

測試庫文檔其實就是代碼里的document注釋,通常用3個雙引號括起來,通常建議寫在代碼注釋,這樣有一個好處,RF提供了libdoc工具,可以很方便生成一份測試庫文檔,具體命令參考:

生成后的文檔樣本如下:

每次代碼更新,就同步更新document注釋,只需重新執行命令生成新的文檔即可,文檔可以直接為他人使用提供參考便利。

可以創建文檔:

  • 測試庫實現 Python 或 Java 使用正常 靜態庫API,
  • 測試庫使用 動態API ,包括遠程庫
  • 資源文件 

另外可以使用Libdoc創建的XML規范 作為輸入。

選項

- f - - -格式 < html | xml >
  指定是否要生成HTML或XML輸出。 如果不使用此選項,格式 擴展的輸出文件。
- f ——docformat <機器人其他html文本| | | >
  指定源文件的格式。 可能的 值是機器人框架的文檔格式, HTML、文本和恰好。 默認值 可以指定在測試庫源代碼和 初始默認值 機器人 。 2.7.5新機器人框架。
- n ——名字 <新名稱>
  集的名字記錄庫或資源。
- v ——版本 <新版本>
  集的版本庫或記錄 資源。 測試庫的默認值 從源代碼 
- p ——pythonpath環境 <路徑>
  額外的位置搜索庫 和資源同樣時 運行測試 
- e ——逃避 <什么:>
  轉義字符的問題在控制台。 什么 角色的名字逃脫嗎 和 與 是字符串來逃避它。 在列出可用的逃 ——幫助 輸出。
- h ,——幫助 打印這個幫助。
資源文件的路徑

資源文件必須使用指定的路徑。 如果路徑是 不存在,資源文件中所有目錄搜索 的 模塊搜索路徑 同樣當執行測試用例。

生成文檔

在HTML或XML格式生成文檔時,輸出文件必須 被指定為第二個參數后,圖書館/資源名稱或路徑。 輸出格式是自動從擴展但也可以設置 使用 - - -格式 選擇。

例子:

python -m robot.libdoc OperatingSystem OperatingSystem.html
python -m robot.libdoc --name MyLibrary Remote::http://10.0.0.42:8270 MyLibrary.xml
python -m robot.libdoc test/resource.html doc/resource_doc.html
jython -m robot.libdoc --version 1.0 MyJavaLibrary.java MyJavaLibrary.html
jython -m robot.libdoc my.organization.DynamicJavaLibrary my.organization.DynamicJavaLibrary.xml

查看控制台信息

Libdoc有三個特殊的命令在控制台上顯示信息。 使用這些命令輸出文件的名稱,而是和他們可以 也附加參數。

  • 列表
列表的名稱關鍵詞庫/資源包含。 可以 限於只顯示某些關鍵詞通過可選模式 作為參數。 關鍵詞列出其名稱是否包含給定的模式。
  • 顯示
顯示庫/資源文檔。 只能是有限的顯示嗎 某些關鍵詞通過名稱作為參數。 如果顯示關鍵字 它的名字匹配任何名字。 特別的觀點 介紹 將顯示 只有圖書館引進和導入部分。
  • 版本
顯示庫版本

可選模式給 列表顯示。 同時也接受 * ?作為通配符。

例子:

python -m robot.libdoc Dialogs list
python -m robot.libdoc Selenium2Library list browser
python -m robot.libdoc Remote::10.0.0.42:8270 show
python -m robot.libdoc Dialogs show PauseExecution execute*
python -m robot.libdoc Selenium2Library show intro
python -m robot.libdoc Selenium2Library version


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM