一、Robot Framework框架簡介
Robot Framework是一種基于Python的可擴(kuò)展關(guān)鍵字驅(qū)動(dòng)自動(dòng)化測試框架,通常用于端到端的可接收測試和可接收測試驅(qū)動(dòng)的開發(fā)??梢杂糜跍y試聲明涉及到多種技術(shù)和接口的分布式的,異構(gòu)的應(yīng)用系統(tǒng)。
測試用例位于HTML或者TSV(以tab分隔值)文件,使用在測試庫中實(shí)現(xiàn)的關(guān)鍵詞來在測試中運(yùn)行程序。因?yàn)镽obot Framework 是靈活和可擴(kuò)展的,所以它很合適用于測試具有多種接口的復(fù)雜軟件:用戶接口,命令行,web service,編程接口等。
模塊化結(jié)構(gòu)如下圖所示
二、安裝
Robot Framework需要Python或Jython環(huán)境,具體需要哪個(gè)環(huán)境主要是看你使用的Test Libraries或是Test Tools的需要。
1. 安裝Python或Jython;
2. 安裝Robot Framework:
- Windows:可直接下載安裝程序安裝,安裝完成后在系統(tǒng)環(huán)境變量中的Path變量中新增C:\Python27\Scripts,C:\Python27為本機(jī)Python安裝路徑;
- Linux:下載robotframework-2.6.3.tar.gz 并解壓,然后進(jìn)入解壓目錄并執(zhí)行安裝命令:python setup.py install
- 驗(yàn)證安裝是否成功,執(zhí)行命令:pybot --version
3. 安裝擴(kuò)展庫,如果需要的話。
三、Robot Framework基礎(chǔ)
1. 變量
變量是 Robot Framework的完整特征,它們能在測試數(shù)據(jù)的大多數(shù)地方被使用。最常見的是,在測試用例表和關(guān)鍵字表中被用于關(guān)鍵字的參數(shù),但是所有設(shè)置的值中都允許使用變量。一個(gè)普通的關(guān)鍵字名稱不能使用變量來指定,但使用內(nèi)建關(guān)鍵字Run Keyword 可以獲得這種效果.
- 標(biāo)量:語法${scalar}。當(dāng)在測試數(shù)據(jù)中使用標(biāo)量變量時(shí),他們將被分配的值所代替。
- 列表變量:語法@{LIST}。列表變量是復(fù)合變量,可以分配多個(gè)值給它。
- 內(nèi)建變量:
- 操作系統(tǒng)相關(guān)的變量
- 數(shù)字變量:變量語法可以用來創(chuàng)建一個(gè)全是整型和浮點(diǎn)型的數(shù)字:整形${80}、浮點(diǎn)型 ${3.14}
- Boolean變量:${true/false}
- Null/None變量: ${null/None}
- 空格${SPACE}和空${EMPTY}變量
2. 測試文件語法
1. 測試用例的組織層次結(jié)構(gòu):
- 在測試用例文件(test case file)中建立測試用例;
- 一個(gè)測試文件自動(dòng)的建成一個(gè)包含了這些測試用例的測試集(test suite);
- 一個(gè)包含多個(gè)測試用例文件(test case file)的目錄構(gòu)成更高級別的測試集;
- 一個(gè)測試集目錄可以包含其他測試集目錄
此外,還有:
- 測試庫(Test libraries)包含最低級別的關(guān)鍵字
- 資源文件(Resource files)包含變量和更高層次的用戶自定義關(guān)鍵字
- 變量文件(Variable files)可以提供比資源文件更靈活的方式創(chuàng)建變量
3. 支持的文件格式
測試數(shù)據(jù)被定義為表格形式,無論是使用超文本標(biāo)記語言(HTML),制表符分隔值(TSV),純文字,或 reStructuredText格式。Robot Framework通過文件擴(kuò)展名為其選擇一個(gè)測試數(shù)據(jù)解釋器。只為HTML和TSV 兩種文件格式提供了模板。
HTML文件模板:
TSV文件模板: 測試數(shù)據(jù)被組織在以下四種表格中。這些測試數(shù)據(jù)表格通過表格的第一個(gè)單元格被識別,下列表格的最后一列列出了可以做為表名稱使用的不同別名。 在一個(gè)測試文件中,Setting與Test Case是必須要有的。 Table name | Used for | Aliases | Setting table | 1.導(dǎo)入測試庫,資源文件和變量文件 2. 為測試集和測試用例定義元數(shù)據(jù) | Setting Settings Metadata | Variable table | 定義可以用在其他地方的測試數(shù)據(jù)的變量 | Variable Variables | Test case table | 通過可用的關(guān)鍵字創(chuàng)建測試用例。 | Test case Test cases | Keyword table | 通過低級別關(guān)鍵字創(chuàng)建用戶自定義關(guān)鍵字
| Keyword Keywords User Keyword User Keywords |
四. 創(chuàng)建測試用例實(shí)例 下面以官網(wǎng)自帶例子( Quick Start Guide)說明如何創(chuàng)建測試用例,測試文件使用HTML格式,為理解及設(shè)計(jì)方便,將以下各表放在一個(gè)html文件中。 1. 首先編寫Setting table
Setting | Value | Comment | Library | OperatingSystem | | Library | testlibs/LoginLibrary.py | #導(dǎo)入用戶自定義庫 | Test Setup | Clear Login Database | #每個(gè)測試用例執(zhí)行時(shí)會先執(zhí)行setup | Test Teardown |
| #每個(gè)測試用例執(zhí)行完后會執(zhí)行teardown |
2. 編寫測試用例 Test Case | Action | Argument | Argument | Argument | User can create an account and log in | Create Valid User | fred | P4ssw0rd | #關(guān)鍵字驅(qū)動(dòng),即:調(diào)用keyword表中的同名關(guān)鍵字 | | Login | fred
| P4ssw0rd | | Creating user with invalid password should fail
| [Template] | Creating user with invalid password | | #加上[Template]后則關(guān)鍵字驅(qū)動(dòng)變?yōu)閿?shù)據(jù)驅(qū)動(dòng) | | abCD5 | ${PWD INVALID LENGTH} |
|
| | abCD567890123 | ${PWD INVALID LENGTH}
| |
|
3. 使用關(guān)鍵字
Keyword | Action | Argument | Argument | Argument | Clear Login Database | Remove file
| ${DATABASE FILE} |
| | Create Valid User | [Arguments] | ${username} | ${password} | #定義關(guān)鍵字可以理解為定義函數(shù)實(shí)現(xiàn) | | Create user | ${username}
| ${password}
| #Create User為LoginLibrary.py中定義的關(guān)鍵字,robot Framework會忽略下劃線 | | Status should be | SUCCESS | | #同上 | Login | [Arguments] | ${username}
| ${password} | | | Attempt to login with credentials | ${username}
| ${password} | #同上 | | Status Should Be | Logged In | |
| Creating user with invalid password | [Arguments]
| ${password}
| ${error} | | | Create user
| username | ${password} | | | Status should be | Creating user failed: ${error} | | | | | | | |
4. 使用變量 Variable | Value | ${DATABASE FILE} | ${TEMPDIR}${/}robotframework-quickstart-db.txt | ${PWD INVALID LENGTH} | Password must be 7-12 characters long | | |
5. 自定義關(guān)鍵字返回值 用戶關(guān)鍵字也可以返回值,返回值使用[Return]定義。該值可以賦給測試用例中的變量或其他關(guān)鍵字。 Test Case | Action | Argument | Argument | One return value | ${return} = | Return one value | | | Should Be Equal | ${return} | one | Two return values | @{list}= | Return two values | | | ${first} | ${second} = | Return two values | | | | |
Keyword | Action | Argument | Argument | Return one value | [Return] | one | | Return two values | [Return] | one | two |
五. 測試用例的執(zhí)行 測試用例完成后,就該是執(zhí)行了,這非常簡單:打開命令窗口,進(jìn)入測試集所在目錄,然后輸入命令:pybot XXX.html即可。 當(dāng)目錄下有多個(gè)測試文件時(shí),直接輸入測試文件所在的目錄名,則所有測試文件都會執(zhí)行,且每個(gè)測試文件作為一個(gè)測試集,這在測試報(bào)告中有所體現(xiàn)。
六、測試庫
1. 八個(gè)標(biāo)準(zhǔn)庫,可以直接導(dǎo)入使用。
2. 擴(kuò)展庫,需要下載安裝后才能使用。 這個(gè)庫文件是將待測程序的所有接口函數(shù)提出來,使用python寫的一個(gè)Library文件。需要一定的編程基礎(chǔ)才能很好的寫出測試所需的接口庫函數(shù)。
七、其它 在一個(gè)測試集中,可能包含多個(gè)測試文件,為重用關(guān)鍵字及變量,可以將關(guān)鍵字及變量單獨(dú)生成文件,然后在測試文件的setting中導(dǎo)入資源文件即可。
Setting | Value | Resource | Variable.html | Resource | keyword.html |
|