01- 關於測試庫(Test libraries)
Test libraries provide the actual testing capabilities to Robot Framework by providing keywords.
There are several standard libraries that are bundled in with the framework, and galore of separately developed external libraries that can be installed based on your needs.
- Standard: Builtin, OperatingSystem, String, Dialogs, Remote, Telnet, XML, etc.
- External: Selenium2Library, SSHLibrary, HTTP library, etc.
- Other: Creating test libraries, etc.
如何查找測試庫:
- robotframework.org:http://robotframework.org/#test-libraries
- PyPI:https://pypi.org/search/?q=robotframework
安裝測試庫
注意:包之間的依賴關系和安裝順序;
示例
: 以在Windows7-64位系統安裝robotframework-selenium2library為例
- pip install decorator
- pip install selenium
- pip install robotframework-selenium2library
02- 測試用例的組織層次結構
(Web Demo —Valid Login)
•測試集(Test Case Suite)
測試用例被實現的地方,包含了一個或多個測試用例,其本質是一個文本文件(HTML, TSV,TXT,ROBOT) 。在測試集中可以引入擴展庫,Resource以及變量。
為了便於管理,一般是通過引入資源文件(Resource files)的方式來引入擴展庫,關鍵字和變量。測試集里面最好只存有測試用例。
典型情況下,每個工程都會有至少一個測試組件。在大一些的工程中,把不同功能點的測試切分成多個測試組件是合理的。一個測試集目錄可以包含其他測試集目錄,這種層次結構可以滿足層嵌套的需要。
•測試用例(Test Case)
一個測試用例對應Test Case Suite下的一個測試用例標識。
為了方便用例管理,Test Case里面盡量做到方便,簡潔,易讀。所以Test Case里面很少有內容的判斷,一般都是直接調用Keyword。
•自定義關鍵字(User Keyword )
建議存放在資源文件(Resource files)中。
可以將自定義關鍵字理解為是測試步驟的組合,通常用於封裝已有關鍵字的調用,以及測試用例結果的判斷。
•變量(Variables)
不常改變的變量可以放到.py文件中,調試用經常改變的變量可以放在Resources中。
變量建議存放在資源文件(Resource files)或者python庫函數中。
可分為返回值變量和參數變量。
返回值變量:通常寫在函數名的左邊,有幾個返回值,則可以寫幾個變量。
參數變量:通常寫在函數名的右邊,有幾個參數則必須填幾個。Robot有參數提醒功能。
•資源文件(Resource files)
建議在資源文件中自定義高層關鍵字,引入擴展庫以及自定義變量。
•變量文件(Variable files)
可以提供比資源文件更靈活的方式創建變量
•測試庫(Test libraries)
包含最低級別的關鍵字。
如果是安裝的擴展庫,引用后可以直接使用。
如果是自己編寫的擴展庫,可以放在.py文件中,然后從相對路徑調用后使用。
03- 創建簡單自定義的test library
•確認要實現的內容
1:公式:(a+b)的a次方,a,b是正整數
2:有一網址(字符串),http://www.example.com?ip=192.187.111.198&code=12345&name=cat,想得到ip內容,即192.187.111.198
3:(用戶名+10位隨機數+一個key)進行md5加密
•編寫test library
測試庫以.py為后綴名,文件名與實現該測試庫的模塊名或者類名相同: <Class name>.py。
根據需要編寫testlibrary,定義相關的class及函數等。
返回值在 Python中采用 return 語句。
# -*- coding: utf-8 -*- import re ## re 模塊提供了一系列功能強大的正則表達式 (regular expression) 工具 import hashlib ## Secure hashes and message digests import random ## random 模塊包含許多隨機數生成器 import string ## string 模塊提供了一些用於處理字符串類型的函數, class CreatNewLibrary(): def ABA(self,a,b): ''' 公式:(a+b)的a次方,a,b是正整數 Example: | ${c} | aba | 2 | 3 | 結果${c}=25 ''' return (int(a)+int(b))**int(a) def Find_IP(self,url): ''' 從網址獲取IP地址 Example: | ${ip} | Find IP | http://www.example.com?ip=192.187.111.198&code=12345&name=cat | 結果${ip}=192.187.111.198 ''' ip = re.findall('ip=(.*?)&',url,re.I) if(ip and ip[0]!=''): return ip[0] else: return "沒有匹配到IP" def MD5_RandStr(self,username,key='UYTYUT-65HGj-IYR8760-YRJKKL9'): ''' (用戶名+一個key)進行MD5加密,key有默認的,也可以執行設定 Example : | ${string} | MD5 RandStr | tester | | ${string} | MD5 RandStr | tester | UYTYUT-65HGj-IYR8760-YRJKKL9 ''' return hashlib.md5(username+key).hexdigest()
•編譯調試test library
保證Test library完整無誤,正常運行。

•導入及確認test library
如果將test library文件放在了testcase的同一目錄下,所以直接輸入文件名全稱即可。
如果test library文件在其他地方,要保證文件地址信息正確,或者以查找文件的方式導入也可。

正常的情況下,導入完成test library文件名稱在settings中應顯示為黑色。
按F5鍵,選擇對應的Source名稱,正常情況下,可以看到自定義庫和說定義的關鍵字信息。
•應用test library
Test Case的編寫及調試
利用自定義庫的關鍵字完成Test Case的編寫,並根據相關日志調試
*** Settings *** Force Tags CreatNewBasicLibrary Library CreatNewLibrary.py *** Test Cases *** CreatNewBasicLibrary ${c}ABA 2 3 Log${c} ${ip}Find IPhttp://www.example.com?ip=192.187.111.198&code=12345&name=cat Log${ip} ${string1} MD5 RandStr tester Log${string1} ${string2} MD5 RandStr tester123456-654321-98765-56789 Log${string2}