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