Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> android 自動化測試之MonkeyRunner學習(二)

android 自動化測試之MonkeyRunner學習(二)

編輯:Android開發實例

上次說到已經配好了MonkeyRunner的運行環境,現在講解怎麼進行簡單的MonkeyRunner測試。這個拖了很久才有時間和心情總結一下。真是計劃趕不上變化啊。

就不說廢話了。http://developer.android.com/tools/help/MonkeyDevice.html ,這個地址是android上的MonkeyRunner官方文檔地址。上面關於MonkeyRunner的一些方法說的很詳細。本篇不是詳細解釋MonkeyRunner方法的文章,只是根據我的理解,結合自己的一個例子講解一下怎麼使用MonkeyRunner寫測試程序。 MonkeyRunner工具共有三個類:MonkeyRunner、MonkeyDevice、MonkeyImage。 一、MonkeyRunnner類:         這個類主要用於把MonkeyRunner連接至真機或者模擬器,另外有個顯示提示信息的alert方法和一個選擇方法比較常用。 二、MonkeyImage類:         這個類主要是測試過程中,用來保存測試截圖,把圖片保存成各種格式,並且可以比較兩個MonkeyImage對象。         主要常用的有兩個方法:writeToFile (string path, string format) ,這個是保存截圖的位置,和命名,可以把圖片保存到sdcard裡面,也可以保存到電腦裡面;sameAs (MonkeyImage other, float percent) ,這個用來比較兩個截圖是否相同,結果為boolean值。 三、MonkeyDevice類:         這個類的方法就多了一下,主要提供了安裝和卸載程序包、啟動一個活動及操作鍵盤等事件的方法。像裡面的startActivity (string uri, string action, string data, string mimetype, iterable categories dictionary extras, component component, flags) 啟動一個應用,press (string name, dictionary type)點擊控件 ,touch (integer x, integer y, integer type)點擊控件(通過坐標定位) ,drag (tuple start, tuple end, float duration, integer steps) 拖拉控件等等方法比較常用。       MonekeyRunner這個測試工具用起來不算太難,下面給出一段代碼簡單解釋一下:   FetionTest.py       #coding=utf-8    Python程序的第一句,添加這句使注釋支持中文     # 導入需要的MonkeyRunner的包,也可以是自己寫的類,如果文件很多的話     from  com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage     #連接真機,裡面要寫正確自己的真機對應的名字,cmd下命令下,可以用adb devices 看到     devices1=MonkeyRunner.waitForConnection(5,"1234567890ABCDEF")     #連接模擬器     devices2=MonkeyRunner.waitForConnection(5,"emulator-5554")     #啟動飛信的主界面,這是我測的飛信程序,裡面主要是配好飛信的包名和啟動Activity       devices1.startActivity     (component = 'cn.com.fetion/.android.ui.activities.StartActivity')    devices2.startActivity    (component = 'cn.com.fetion/.android.ui.activities.StartActivity')    #休眠8秒,便於帳號的登錄    MonkeyRunner.sleep(8.0)    #點擊我的好友一欄,這裡使用的是坐標方法     devices1.touch(202,258,"DOWN_AND_UP")    #選中好友    devices1.touch(222,326,"DOWN_AND_UP")    devices1.touch(442,325,"DOWN_AND_UP")    # 點擊“加入黑名單”    devices1.touch(223,563,"DOWN_AND_UP")    # 下面是進行截圖,和保存圖片    result1 = device1.takeSnapshot()    result1.writeToFile('E:\slack01.png','png')    #點擊返回鍵,可以找到模擬器上任何一個建對應的關鍵值,這個在官方文檔裡可以查到    device1.press('KEYCODE_BACK',MonkeyDevice.DOWN_AND_UP)    result2 = device1.takeSnapshot()    result2.writeToFile('E:\slack02.png','png')      這個程序就簡單說這些,另外可以對自己的程序進行優化,可以把不同的測試case封裝到一個方法裡,也可以把一些配置設置成全局變量,然後在不同的類裡進行調用。這些需要簡單了解一下Python的編程知識。    下面說一個比較好用的獲取坐標的工具。就是用來獲取真機上坐標的工具,當我們點擊真機上的空間時,能顯示真機上的點擊點的坐標。 這個是一個可以自己定義的python文件,只有幾句話: from com.android.monkeyrunner import MonkeyRunner as mr from com.android.monkeyrunner.recorder import MonkeyRecorder as recorder # 裡面添加你的真機的名字 device = mr.waitForConnection(5,"MSM8225QRD5") recorder.start(device) 比如,我把它定義為monkey_recorder.py, 然後放在G盤,在cmd下運行 monkeyrunner monkey_recorder.py ,就會出現如下界面:   當我們在這個工具上點擊時,真機也會跟著執行,並且會顯示每一步我們點擊的位置的坐標,比如,我點擊打開音樂播放器會記錄如下:     這個工具的好只有處你用過幾次才知道的,呵呵,反正有些應用程序裡很小的圖標只能通過坐標獲取點擊事件,這個工具的優勢就顯示出來了。另外,需要注意,這個是不能用來獲取模擬器坐標的,模擬器上的坐標只有自己下個截圖工具,來量取坐標了。這一點確實很蛋疼。 軟件工具都是這樣,沒有絕對的便利。MonkeyRunner也不例外。呵呵,這一次就寫這麼多吧,這個工具簡單的使用介紹的也差不多了,更多的還需要自己去摸索,熟能生巧嘛。希望大家能多多分享,多多交流。   出處http://fengbohaishang.blog.51cto.com/5106297/962705
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved