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

來源:互聯網
上載者:User

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也不例外。呵呵,這一次就寫這麼多吧,這個工具簡單的使用介紹的也差不多了,更多的還需要自己去摸索,熟能生巧嘛。希望大家能多多分享,多多交流。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.