利用monkeyrunner實現Android屏幕連續截圖


 

MonkeyRunner

什么是monkeyrunner

monkeyrunner工具提供了一個API,使用此API寫出的程序可以在Android代碼之外控制Android設備和模擬器。通過monkeyrunner,您可以寫出一個Python程序去安裝一個Android應用程序或測試包,運行它,向它發送模擬擊鍵,截取它的用戶界面圖片,並將截圖存儲於工作站上。monkeyrunner工具的主要設計目的是用於測試功能/框架水平上的應用程序和設備,或用於運行單元測試套件。

 

monkeyrunner同monkey的區別

Monkey工具直接運行在設備或模擬器的adb shell中,生成用戶或系統的偽隨機事件流。monkeyrunner工具則是在工作站上通過API定義的特定命令和事件控制設備或模擬器,它支持,自己編寫插件,控制事件,隨時截圖,簡而言之,任何你在模擬器/設備中能干的事情,MonkeyRunner都能干,而且還可以記錄和回放。

 

monkeyrunner的測試類型

1、多設備控制:monkeyrunner API可以跨多個設備或模擬器實施測試套件。您可以在同一時間接上所有的設備或一次啟動全部模擬器(或統統一起),依據程序依次連接到每一個,然后運行一個或多個測試。您也可以用程序啟動一個配置好的模擬器,運行一個或多個測試,然后關閉模擬器。

2、 功能測試: monkeyrunner可以為一個應用自動貫徹一次功能測試。您提供按鍵或觸摸事件的輸入數值,然后觀察輸出結果的截屏。

3、 回歸測試:monkeyrunner可以運行某個應用,並將其結果截屏與既定已知正確的結果截屏相比較,以此測試應用的穩定性。

4、 可擴展的自動化:由於monkeyrunner是一個API工具包,您可以基於Python模塊和程序開發一整套系統,以此來控制Android設備。除了使用monkeyrunner API之外,您還可以使用標准的Python os和subprocess模塊來調用Android Debug Bridge這樣的Android工具。

 

運行monkeyrunner

您可以直接使用一個代碼文件運行monkeyrunner,抑或在交互式對話中輸入monkeyrunner語句。不論使用哪種方式,您都需要調用SDK目錄的tools子目錄下的monkeyrunner命令。如果您提供一個文件名作為運行參數,則monkeyrunner將視文件內容為Python程序,並加以運行;否則,它將提供一個交互對話環境。

 

monkeyrunner基本語法

monkeyrunner -plugin <plugin_jar> <program_filename> <program_options>

具體介紹…看官方文檔(http://developer.android.com/guide/developing/tools/monkeyrunner_concepts.html)

 

下面是截圖實現:

#!/home/arcticant/android-sdks/tools/monkeyrunner
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice

"""
enter Ctrl+c to end
"""

def androidshot(): #set the interval between two screenshot sleeptime = 3 #connect device print "start ..." device = MonkeyRunner.waitForConnection() #begin to take snapshot i = 0; while i < 100: result = device.takeSnapshot() filename = str(i) + ".png" print filename result.writeToFile(filename, 'png') MonkeyRunner.sleep(sleeptime) i = i + 1 if __name__ == '__main__': androidshot()

需要monkeyrunner才能運行此腳本

一般android-sdks文件夾下有monkeyrunner

沒有寫結束代碼, ubuntu下直接Ctrl+c結束程序


注意:運行此腳本后最好先保存好此次的截圖,第二次運行會覆蓋第一次生成的結果。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM