qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          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的結構模式,給大家展示一下在命令行中展示出來的結構模式



            feature為主件夾,step_definitions內是你封裝的腳本,my_first.feature文件就是你的TC邏輯。再看一下其中的內容:

            my_first.feature

            Feature: 登陸

            Scenario: 輸入正確的用戶名密碼能夠正常登陸

            When 打開登陸頁面

            And    輸入用戶名XXX輸入密碼XXX

            And   點擊登陸

            Then  驗證登陸成功

            看起來很簡單吧,想要驗證其他功能也是類似的語言描述即可。如果你沒有用過cucumber或者calabash那么你肯定現在有一個疑問,計算機怎么能識別漢字來進行測試的呢,那么看一下step_definition:

            以輸入用戶名XXX輸入密碼XXX為例:

          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

          <2013年7月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 英山县| 兴隆县| 苏尼特左旗| 苗栗县| 阳新县| 裕民县| 连南| 木兰县| 宣城市| 当阳市| 清水县| 曲松县| 北京市| 景泰县| 盐池县| 巫山县| 紫金县| 建阳市| 汽车| 剑川县| 颍上县| 沈阳市| 秦安县| 青川县| 黑龙江省| 镇雄县| 齐河县| 青龙| 阜阳市| 清水县| 饶阳县| 揭阳市| 堆龙德庆县| 宣城市| 德保县| 榆中县| 寻甸| 乌鲁木齐市| 连江县| 孟州市| 犍为县|