qileilove

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

          用python做自動化測試—Monkeyrunner問題的解決方案

          Monkeyrunner為Andriod SDK 嫡親的測試工具,功能還是很強大的,但Andriod的測試技術發展比較晚,所以目前國內的教程和例子比較少,很多功能沒有發掘出來。
            Monkeyrunner的例程google下可以有很多,這里就不在重復了,下面說說大家可能遇到的幾個問題,及解決方案。
            1. 點擊button,選擇輸入焦點,只能靠坐標來定位,一旦換手機,坐標完全失效了。
            解決方案a: 通過device.getProperty("display.width"),device.getProperty("display.height")得到你調試手機的像素,在新的手機中,通過這2個參數的比例關系,可以得到在新手機的X,Y坐標點。
            解決方案b:通過view server查詢ID來定位,這種方法是最好的,肯定不會錯。但很多手機上view server不工作,即使被rooted了(可以通過hierarchyviewer.bat來確認view server是否工作).  破解過程有點下復雜,大家可以參考這里,還是可以破解的。http://blog.apkudo.com/tag/viewserver/
          from com.android.chimpchat.hierarchyviewer import HierarchyViewer
          from com.android.monkeyrunner.easy import By
          from com.android.hierarchyviewerlib.device import ViewNode
          easy_device.locate(By.id('id/main_button'))
          easy_device.touch(By.id('id/main_button'), 'downAndUp')
            2.  測試結果的檢查中,用圖片來比較精確度不高。
            很多測試用例的檢查結果中,我們希望同時檢查app的界面是不是我們期望的,但通知欄的電池或者彈出個通知消息不好比較,容易導致結果比較失敗。
            解決方案a:通過OCR技術,可以獲取到圖片里的文字。python里面有https://code.google.com/p/pytesser/,當然這個是cpython的,monkeyrunner用的是jython, 無法直接調用cpython的模塊,OCR里面java的開源模塊很多,jython直接調用java非常方便。
            解決方案b:還 是通過view server得到界面上內容
          hierarchy_viewer = device.getHierarchyViewer()
          view_node = hierarchy_viewer.findViewById('id/prompt_text_view')
          text = view_node.namedProperties.get('mText').toString()

          posted on 2014-01-09 10:31 順其自然EVO 閱讀(615) 評論(0)  編輯  收藏 所屬分類: selenium and watir webdrivers 自動化測試學習

          <2014年1月>
          2930311234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 静宁县| 尖扎县| 许昌县| 芜湖市| 泾阳县| 泰宁县| 西昌市| 博客| 平顶山市| 吉木乃县| 四会市| 中卫市| 曲周县| 永吉县| 宣城市| 东源县| 高安市| 达尔| 泰顺县| 寿阳县| 长武县| 嘉鱼县| 汝阳县| 南漳县| 徐州市| 黄大仙区| 黔西| 志丹县| 嘉善县| 罗平县| 龙门县| 永年县| 磐石市| 平远县| 马尔康县| 榆中县| 灵寿县| 乌拉特前旗| 罗城| 北辰区| 茌平县|