----公告:本章內(nèi)容僅適用于Python2.7 + RobotFramework3.0.2 + Ride1.5.2.1 +?wxPython2.8.12.1版本织狐。適用于Python3的RF環(huán)境搭建請移步查看作者的另一篇文章香浩。
當(dāng)初開簡書的目的是總結(jié)RF自動(dòng)化測試的學(xué)習(xí)和分享,網(wǎng)上有很多教程倒槐,雖然有好幾個(gè)程序要安裝,其實(shí)還是很簡單的余素,所以沒分享過程蒙兰,為了學(xué)習(xí)順序現(xiàn)在還是補(bǔ)上吧。
本文講Windwos系統(tǒng)安裝RF方法茵乱,初學(xué)者按照步驟正常安裝茂洒,基本不會有多大問題。如果不是新手瓶竭,只是需要安裝包督勺,文末單獨(dú)提供下載鏈接,請直接跳到底部斤贰,請自行按需選擇64位或32位程序智哀,否則會出現(xiàn)環(huán)境無法正常啟動(dòng)的問題。
第一部分荧恍、在Windows下安裝Robot Framework
1.1RF框架介紹
Robot Framework框架是一個(gè)通用的測試框架瓷叫,一直是由諾西網(wǎng)絡(luò)(Nokia Siemens Networks Oyj)的人員維護(hù)。在諾基亞賣掉手機(jī)業(yè)務(wù)后送巡,更名為諾基亞解決方案網(wǎng)絡(luò)(Nokia Solutions and Networks)摹菠。
官方地址:RF官網(wǎng)
官方介紹:The framework was initially developed at?Nokia Networks?and itis nowadays sponsored by?Robot Framework Foundation
官方指南:RF官方指南
API documentation:官方API文檔
RF的特性:
易于使用,采用表格式語法骗爆,統(tǒng)一測試用例格式次氨;
可以使用關(guān)鍵字驅(qū)動(dòng)(keyword-driven)、數(shù)據(jù)驅(qū)動(dòng)(data-driven)和行為驅(qū)動(dòng)開發(fā)(BDD)完成摘投;
重用性好煮寡,可以利用現(xiàn)有關(guān)鍵字來組合新關(guān)鍵字虹蓄;
結(jié)果報(bào)告和日志采用HTML格式,易于閱讀幸撕;
平臺和應(yīng)用無關(guān)聯(lián)性薇组;
模塊結(jié)構(gòu)支持使用不同的接口來測試你的應(yīng)用;
易于擴(kuò)展杈帐,提供了簡單API体箕,用戶可以自定義的基于Python或者Java的測試庫;
易于集成挑童,提供了命令行接口和基于XML的輸出文件累铅;
功能全面,支持WEB測試(Selenium)站叼、Java GUI測試娃兽,啟動(dòng)線程、Telnet尽楔、SSH等投储;
RemoteLibrary接口可以支持分布測試和使用其他編程語言實(shí)現(xiàn)測試庫;
提供tag標(biāo)簽來分類和選擇你的案例執(zhí)行;
內(nèi)置支持變量variables阔馋,支持不同的環(huán)境進(jìn)行測試玛荞;
Robot Framework作為框架平臺,上面可以加載各種Library呕寝,通過測試套件勋眯、資源文件集成起來,然后可以針對被測系統(tǒng)進(jìn)行不同角度的測試下梢,圖中只列了三種Library客蹋,實(shí)際上還有很多種不同方向的Library。
1.2安裝篇
Python:robot?framework是基于python開發(fā)的孽江。(必裝)
Setuptools和Pip:使用pip命令在線自動(dòng)安裝庫讶坯,非常方便(推薦)。
Robot?framework:要想使用該框架(必裝)岗屏。
wxPython:提供圖形圖形界面支持辆琅,使用ride則必裝。
Robot?framework-ride:可以看作Robot?Framework框架的標(biāo)準(zhǔn)編輯器这刷。各人的習(xí)慣不同婉烟,也可用PyCharm、Red或者Sublime等編輯器寫RF腳本崭歧。
注意:按照操作系統(tǒng)是64位或32位選擇軟件,本文默認(rèn)64位撞牢。
1.2.1率碾、首先安裝Python
下載地址:Python2.7.14
注意事項(xiàng):
1叔营、雖然RF3.0.2版本已經(jīng)支持python3,由于編輯器Ride只支持python2所宰,選擇安裝Python2.7.14绒尊;
2、在path環(huán)境變量中添加“D:\Python27;D:\Python27\Scripts;”
3仔粥、建議不要安裝在C盤婴谱,可能日志越來越多,占用C盤空間會越來越大
4躯泰、安裝路徑不能有空格或中文字符谭羔。
1.2.2、安裝setuptools和pip
首先簡單說下這兩個(gè)包的作用麦向。
Setuptools能使程序員更方便的創(chuàng)建和發(fā)布Python包瘟裸,特別是那些對其他包具有依賴性的狀況。使用setuptools里的easy_install命令安裝第三方Python包诵竭。
Pip是一個(gè)安裝和管理Python包的工具话告,通過pip去安裝Python包變得十分簡單,pip依賴于setuptools卵慰,因此有安裝順序沙郭,先安裝Setuptools,再安裝Pip裳朋。
Setuptools下載地址:Setuptools
Pip下載地址:Pip
(Python2.7.14自帶pip病线,安裝python就能使用pip)
在E:\package\setuptools或pip的目錄下執(zhí)行命令:python setup.py install
注意事項(xiàng):
1、如果在安裝setuptools遇到xx包導(dǎo)入錯(cuò)誤再扭,沒有發(fā)現(xiàn)xx包氧苍,可以自行去下載安裝。下載地址:https://pypi.python.org/pypi泛范,然后搜索自己缺少的包让虐,例如six/packaging/appdirs,可以通過pip安裝(命令pip install?package)罢荡,也可以通過下載源碼赡突,用命令安裝python setup.py install。
2区赵、如果提示pip不是內(nèi)部命令惭缰,檢查環(huán)境變量是否配置正確。
1.2.2笼才、安裝Robot Framework
下載地址:RF 3.0.2
提供了exe的文件和tar.gz文件漱受,前者可以直接雙擊安裝,后者則需像安裝Python包一樣用Python setup.py install骡送,或者通過pip命令:pip install robotframwork
寫這個(gè)文章時(shí)RF最新版本是3.0.2昂羡,請注意最近更新情況絮记。
1.2.4、安裝wxPython
下載地址:wxPython2.8.12.1
wxPython是Python非常有名的GUI庫虐先,RIDE基于這個(gè)庫開發(fā)怨愤,所以必須安裝。
1.2.5蛹批、安裝RIDE
下載地址:Ride
寫本文時(shí)版本是:robotframework-ride 1.5.2.1
RIDE是Robot Framework的圖形編輯器撰洗,使用它寫腳本方便快捷。
安裝完成后你可能發(fā)現(xiàn)電腦桌面沒有RIDE機(jī)器人圖標(biāo)腐芍,可以手動(dòng)創(chuàng)建:
1差导、在桌面上右鍵新建快捷方式
2、在“請鍵入對象”的位置上輸入命令:
D:\Python27\pythonw.exe -c “from robotide import main;main()”
(D:\為Python的安裝路徑)
3甸赃、機(jī)器人圖標(biāo)柿汛,快捷方式上右鍵→屬性→更改圖標(biāo),在“瀏覽”中輸入路徑“D:\Python27\Lib\site-packages\robotide\widgets”埠对,找到機(jī)器人的圖標(biāo)點(diǎn)擊確定络断。
到此Robot Framework安裝完畢,你可以開始機(jī)器人的夢幻之旅了项玛!
1.3下面再介紹一下標(biāo)準(zhǔn)庫和接口測試庫
標(biāo)準(zhǔn)庫是Robot Framework可以直接導(dǎo)入使用的庫貌笨,包含以下幾類:
Builtin:包含經(jīng)常需要的關(guān)鍵字。自動(dòng)導(dǎo)入無需import襟沮,因此總是可用的
Dialogs:提供了暫停測試執(zhí)行和從用戶的輸入方式锥惋。
Collections:提供一組關(guān)鍵詞處理Python列表和字典。
OperatingSystem:允許執(zhí)行各種操作系統(tǒng)相關(guān)的任務(wù)开伏。允許執(zhí)行各種操作系統(tǒng)相關(guān)的任務(wù)膀跌,使各種操作系統(tǒng)相關(guān)的任務(wù)在robot framework正在運(yùn)行的系統(tǒng)中執(zhí)行。
Remote:遠(yuǎn)程庫接口的一部分固灵。沒有自己的任何關(guān)鍵字捅伤,作為robot framework和測試庫之間的代理的特殊庫。實(shí)際測試庫可以在不同的機(jī)器上運(yùn)行巫玻,可以使用任何編程語言支持XML-RPC協(xié)議的實(shí)現(xiàn)丛忆。
Screenshot:提供關(guān)鍵字來捕獲和存儲桌面的截圖。
String:用于處理字符串并驗(yàn)證它們內(nèi)容的庫仍秤,用于生成熄诡、修改和驗(yàn)證字符串。
Telnet:支持連接到Telnet服務(wù)器诗力,執(zhí)行命令鸦做。
XML:用于生成胜宇、修改和驗(yàn)證XML文件的庫冲粤。
Process:系統(tǒng)中運(yùn)行過程的庫。
DateTime:日期和時(shí)間轉(zhuǎn)換的庫屿良,支持創(chuàng)建和驗(yàn)證日期和時(shí)間值以及它們之間的計(jì)算。
SudsLibrary:用于Web Service服務(wù)端接口測試的庫惫周,可處理Soap請求
Requests,RequestsLibrary:基于Restful http接口測試庫康栈,大名鼎鼎常用的get post等
第二部分递递、Requests接口自動(dòng)化測試介紹
主要介紹幾種常見的接口如何進(jìn)行自動(dòng)化測試,重點(diǎn)是get request和post request啥么。這部分測試案例可以在這里找到:https://github.com/qitaos/rf-demos/tree/master/RequestsDemo登舞。不過,強(qiáng)烈建議大家查看官方的驗(yàn)收測試用例悬荣!
1.接口測試接口測試通常是系統(tǒng)之間交互的接口菠秒,或者某個(gè)系統(tǒng)對外提供的一些接口服務(wù)。現(xiàn)在大家也越來越多的關(guān)注接口測試了氯迂,因?yàn)橛袝r(shí)候可能界面上的功能還沒有實(shí)現(xiàn)践叠,我們可以先一步對接口進(jìn)行驗(yàn)證,提早發(fā)現(xiàn)一些和預(yù)期不一致的錯(cuò)誤嚼蚀。這方面的工具還有Postman禁灼、SoapUI、Jmeter等等轿曙,基于RF的接口測試庫我們首推requests和requestsLibrary弄捕。
2.requestsLibrary、requests安裝可以通過pip安裝导帝,或者手動(dòng)安裝守谓,下載地址如下,如果是下載安裝您单,先要安裝requests斋荞,再安裝requestsLibrary。
requests的官方下載地址: https://pypi.python.org/pypi/requests
requestsLibrary
的官方下載地址:https://pypi.python.org/pypi/robotframework-requests/
3. requestsLibrary關(guān)鍵字
requestsLibrary的關(guān)鍵字不多睹限,我常用的就幾個(gè)譬猫。
Create Session:
創(chuàng)建一個(gè)session,連接某個(gè)服務(wù)器
Create Ntlm Session:
也是創(chuàng)建一個(gè)session羡疗,只不過加上了域染服、用戶名、密碼用于NTLM認(rèn)證叨恨。
Get Request:
通過GET方式發(fā)起請求柳刮。
Post Request:
通過POST方式發(fā)起請求。
Head Request:
發(fā)送一個(gè)HEAD請求。
TO Json:
將文本轉(zhuǎn)換成json對象秉颗。
以上
Python:www.python.org/downloads/release/python-2714/
Setuptools:https://pypi.python.org/pypi/setuptools
RobotFramework:https://pypi.python.org/pypi/robotframework/3.0.2
wxPython:sourceforge.net/projects/wxpython/files/wxPython/2.8.12.1
Ride:https://pypi.python.org/pypi/robotframework-ride? ?(版本1.5.2.1)