一、Robot Framework框架簡(jiǎn)介
Robot Framework是一種基于Python的可擴(kuò)展關(guān)鍵字驅(qū)動(dòng)自動(dòng)化測(cè)試框架,通常用于端到端的可接收測(cè)試和可接收測(cè)試驅(qū)動(dòng)的開發(fā)??梢杂糜跍y(cè)試聲明涉及到多種技術(shù)和接口的分布式的,異構(gòu)的應(yīng)用系統(tǒng)。
測(cè)試用例位于HTML或者TSV(以tab分隔值)文件,使用在測(cè)試庫(kù)中實(shí)現(xiàn)的關(guān)鍵詞來(lái)在測(cè)試中運(yùn)行程序。因?yàn)镽obot Framework 是靈活和可擴(kuò)展的,所以它很合適用于測(cè)試具有多種接口的復(fù)雜軟件:用戶接口,命令行,web service,編程接口等。
模塊化結(jié)構(gòu)如下圖所示
Robot Framework使用手冊(cè)及下載地址:
http://code.google.com/p/robotframework/二、安裝
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ò)展庫(kù),如果需要的話。
三、Robot Framework基礎(chǔ)
1. 變量
變量是 Robot Framework的完整特征,它們能在測(cè)試數(shù)據(jù)的大多數(shù)地方被使用。最常見的是,在測(cè)試用例表和關(guān)鍵字表中被用于關(guān)鍵字的參數(shù),但是所有設(shè)置的值中都允許使用變量。一個(gè)普通的關(guān)鍵字名稱不能使用變量來(lái)指定,但使用內(nèi)建關(guān)鍵字Run Keyword 可以獲得這種效果.
標(biāo)量:語(yǔ)法${scalar}。當(dāng)在測(cè)試數(shù)據(jù)中使用標(biāo)量變量時(shí),他們將被分配的值所代替。
列表變量:語(yǔ)法@{LIST}。列表變量是復(fù)合變量,可以分配多個(gè)值給它。
內(nèi)建變量:
操作系統(tǒng)相關(guān)的變量
數(shù)字變量:變量語(yǔ)法可以用來(lái)創(chuàng)建一個(gè)全是整型和浮點(diǎn)型的數(shù)字:整形${80}、浮點(diǎn)型 ${3.14}
Boolean變量:${true/false}
Null/None變量: ${null/None}
空格${SPACE}和空${EMPTY}變量
2. 測(cè)試文件語(yǔ)法
1. 測(cè)試用例的組織層次結(jié)構(gòu):
在測(cè)試用例文件(test case file)中建立測(cè)試用例;
一個(gè)測(cè)試文件自動(dòng)的建成一個(gè)包含了這些測(cè)試用例的測(cè)試集(test suite);
一個(gè)包含多個(gè)測(cè)試用例文件(test case file)的目錄構(gòu)成更高級(jí)別的測(cè)試集;
一個(gè)測(cè)試集目錄可以包含其他測(cè)試集目錄
此外,還有:
測(cè)試庫(kù)(Test libraries)包含最低級(jí)別的關(guān)鍵字
資源文件(Resource files)包含變量和更高層次的用戶自定義關(guān)鍵字
變量文件(Variable files)可以提供比資源文件更靈活的方式創(chuàng)建變量
3. 支持的文件格式
測(cè)試數(shù)據(jù)被定義為表格形式,無(wú)論是使用超文本標(biāo)記語(yǔ)言(HTML),制表符分隔值(TSV),純文字,或 reStructuredText格式。Robot Framework通過(guò)文件擴(kuò)展名為其選擇一個(gè)測(cè)試數(shù)據(jù)解釋器。只為HTML和TSV 兩種文件格式提供了模板。
HTML文件模板:
TSV文件模板:
4. 測(cè)試數(shù)據(jù)表格
測(cè)試數(shù)據(jù)被組織在以下四種表格中。這些測(cè)試數(shù)據(jù)表格通過(guò)表格的第一個(gè)單元格被識(shí)別,下列表格的最后一列列出了可以做為表名稱使用的不同別名。
在一個(gè)測(cè)試文件中,Setting與Test Case是必須要有的。
Table name Used forAliases
Setting table 1.導(dǎo)入測(cè)試庫(kù),資源文件和變量文件
2. 為測(cè)試集和測(cè)試用例定義元數(shù)據(jù)Setting
Settings
Metadata
Variable table定義可以用在其他地方的測(cè)試數(shù)據(jù)的變量Variable
Variables
Test case table通過(guò)可用的關(guān)鍵字創(chuàng)建測(cè)試用例。Test case
Test cases
Keyword table
通過(guò)低級(jí)別關(guān)鍵字創(chuàng)建用戶自定義關(guān)鍵字 Keyword
Keywords
User Keyword
User Keywords
四. 創(chuàng)建測(cè)試用例實(shí)例
下面以官網(wǎng)自帶例子(
Quick Start Guide)說(shuō)明如何創(chuàng)建測(cè)試用例,測(cè)試文件使用HTML格式,為理解及設(shè)計(jì)方便,將以下各表放在一個(gè)html文件中。
1. 首先編寫Setting table
Setting Value Comment
Library OperatingSystem
Library testlibs/LoginLibrary.py#導(dǎo)入用戶自定義庫(kù)
Test SetupClear Login Database#每個(gè)測(cè)試用例執(zhí)行時(shí)會(huì)先執(zhí)行setup
Test Teardown
#每個(gè)測(cè)試用例執(zhí)行完后會(huì)執(zhí)行teardown
2. 編寫測(cè)試用例
Test Case ActionArgument ArgumentArgument
User can create an account and log inCreate Valid UserfredP4ssw0rd#關(guān)鍵字驅(qū)動(dòng),即:調(diào)用keyword表中的同名關(guān)鍵字
LoginfredP4ssw0rd
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 ActionArgument ArgumentArgument
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為L(zhǎng)oginLibrary.py中定義的關(guān)鍵字,robot Framework會(huì)忽略下劃線
Status should beSUCCESS #同上
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 userusername${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]定義。該值可以賦給測(cè)試用例中的變量或其他關(guān)鍵字。
Test CaseAction 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 ActionArgument Argument
Return one value [Return]one
Return two values [Return]one two
五. 測(cè)試用例的執(zhí)行
測(cè)試用例完成后,就該是執(zhí)行了,這非常簡(jiǎn)單:打開命令窗口,進(jìn)入測(cè)試集所在目錄,然后輸入命令:pybot XXX.html即可。
當(dāng)目錄下有多個(gè)測(cè)試文件時(shí),直接輸入測(cè)試文件所在的目錄名,則所有測(cè)試文件都會(huì)執(zhí)行,且每個(gè)測(cè)試文件作為一個(gè)測(cè)試集,這在測(cè)試報(bào)告中有所體現(xiàn)。
六、測(cè)試庫(kù)
1. 八個(gè)標(biāo)準(zhǔn)庫(kù),可以直接導(dǎo)入使用。
BuiltInOperatingSystemTelnetCollectionsStringDialogsScreenshotRemote2. 擴(kuò)展庫(kù),需要下載安裝后才能使用。
SeleniumLibrary :web方面測(cè)試的擴(kuò)展庫(kù)
SwingLibrary:
3. 用戶自定義的Test Library庫(kù)文件
這個(gè)庫(kù)文件是將待測(cè)程序的所有接口函數(shù)提出來(lái),使用python寫的一個(gè)Library文件。需要一定的編程基礎(chǔ)才能很好的寫出測(cè)試所需的接口庫(kù)函數(shù)。
七、其它
在一個(gè)測(cè)試集中,可能包含多個(gè)測(cè)試文件,為重用關(guān)鍵字及變量,可以將關(guān)鍵字及變量單獨(dú)生成文件,然后在測(cè)試文件的setting中導(dǎo)入資源文件即可。
Setting Value
ResourceVariable.html
Resource keyword.html