BDD自動(dòng)化測(cè)試?yán)?calabash(Android)篇(一)
我接觸了當(dāng)前市場(chǎng)上大多數(shù)的android端的自動(dòng)化測(cè)試架構(gòu),也研究了一些偏門左道的一些測(cè)試工具,而當(dāng)我見到calabash這套框架時(shí),內(nèi)心還是小小的開心了一下。
優(yōu)勢(shì)
先說一下calabash的優(yōu)點(diǎn),這樣大家可能更有興趣看下去:
1.calabash是BDD驅(qū)動(dòng)開發(fā),編寫自動(dòng)化測(cè)試腳本比Robotium提高100%
2.calabash是腳本與TC分離設(shè)計(jì),在業(yè)務(wù)變化的情況下,只要功能存在基本只需要修改TC,在業(yè)務(wù)不變,功能變化的情況下,基本只需要修改腳本
3.calabash既支持android也支持ios,真正實(shí)現(xiàn)了套腳本跨平臺(tái)設(shè)備運(yùn)行,小試了一把很酷
4.calabash是支持?jǐn)U展的,而且非常容易擴(kuò),當(dāng)前也支持webview的腳本編寫
運(yùn)行原理
calabash-android架構(gòu)其實(shí)與IOS是相同的,不過本篇只講android,編寫calabash架構(gòu)的腳本,其實(shí)內(nèi)部使用的是cucumber(cucumber是一種BDD測(cè)試框架,有興趣的可以看看)這種核心為cucumber的calabash的腳本在運(yùn)行測(cè)試的時(shí)候會(huì)在虛擬機(jī)/真機(jī)上預(yù)裝一個(gè)web服務(wù)器,這個(gè)web服務(wù)器就是解釋calabash的腳本,將其解釋為robotium的腳本,然后這個(gè)web服務(wù)器會(huì)想測(cè)試app發(fā)送robotium的腳本,測(cè)試app拿到robotium腳本后,將其解釋為instumentation命令向被測(cè)試的app發(fā)送這些命令,被測(cè)試的app執(zhí)行這些命令,然后將結(jié)果返回給測(cè)試app,然后一級(jí)一級(jí)返得到最后的測(cè)試結(jié)果。
結(jié)構(gòu)框架
calabash完全采用了cucumber的結(jié)構(gòu)模式,給大家展示一下在命令行中展示出來的結(jié)構(gòu)模式
When /^ 輸入用戶名\"([^\\\"]*)\" 輸入密碼\"([^\\\"]*)\" $/ do |username,password| performAction('enter_text_into_numbered_field',username,1) performAction('enter_text_into_numbered_field',password,2) end |
現(xiàn)在應(yīng)該能明白為什么你需要寫漢字的腳本就可以了吧。在這里解釋一下為什么如果業(yè)務(wù)存在功能修改這種情況,自動(dòng)化腳本的修改量會(huì)小,還是以這個(gè)登錄腳本為例,加入現(xiàn)在輸入用戶名和密碼的輸入框順序變了,在你的頁面顯示上,可能是從左下角移到中間了,這種變化,那么feature文件你不用改,只需要改step_definition腳本就好了。
運(yùn)行報(bào)告
calabash-android支持很多報(bào)告生成模式,支持html,json,junit等等報(bào)告模式,只需要你在run的時(shí)候添加-f參數(shù)-o參數(shù)就可以了。
例如 calabash-android run xxxx.apk -f html -o report.html,上圖展示一下強(qiáng)大html報(bào)告
posted on 2013-07-31 10:31 順其自然EVO 閱讀(641) 評(píng)論(0) 編輯 收藏 所屬分類: android