4. Monkey (壓力測試)
這個是Android提供的系統工具。它向系統發送偽隨機的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實現對正在開發的應用程序進行壓力測試。Monkey測試是一種為了測試軟件的穩定性、健壯性的快速有效的方法。
■
測試的對象僅為應用程序包,有一定的局限性。
■
Monky測試使用的事件流數據流是隨機的,不能進行自定義。
■
可對MonkeyTest的對象,事件數量,類型,頻率等進行設置。
1.Monkey是什么以及有什么用
Monkey 就是Android中的一個命令行工具,可以運行在模擬器和實際設備中,它向系統發送偽隨機的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實現對正在開發的應用程序進行壓力測試。然后開發人員結合monkey 打印的日志和系統打印的日志,解決測試中出現的問題。Monkey測試是一種測試軟件的穩定性快速有效的方法
2.環境配置
要使用monkey必須配置環境,步驟如下:
1.下載android-sdk-windows,鏈接\\192.168.1.47\測試部共享\鄢明輝
2.解壓android-sdk-windows.zip,將解壓后得到的android-sdk-windows文件夾放在一個固定的路徑下不要隨意移動,例如放在D盤根目錄下:F:\android-sdk-windows(路徑根據個人喜好可隨意設置,但是一旦設置好請勿再移動)
3.分別雙擊F:\android-sdk-windows\ platform-tools文件夾中的adb.exe以及fastboot.exe
4.WiN7系統:右鍵計算機->屬性->高級系統設置->環境變量->在系統變量中找到Path->雙擊Path或點擊編輯->將路徑F:\android-sdk-windows\platform-tools復制到最后 注意:在F:\android-sdk-windows\platform-tools之前要加一個英文狀態下的;
(實際上可以添加多個路徑,每個路徑都用分號;隔開)
如圖:
5.xp系統是同樣的道理,右鍵我的電腦->屬性->高級->環境變量->在系統變量中找到Path->雙擊Path或點擊編輯-,將路徑F:\android-sdk-windows\platform-tools復制到最后 注意:在F:\android-sdk-windows\platform-tools之前要加一個英文狀態下的;
6.打開開始菜單,點擊運行,輸入cmd,回車,輸入adb-decvices,回車,出現如圖所示,即說明已配置成功並可正常使用
7.把手機連接到電腦,輸入adb-decvices,若出現如圖所示,即說明設備已經成功連接
0123456789ABCDEF是關於手機->狀態消息->序列號
3.用各種命令對手機進行操作和測試
adb remount
獲取更高的權限,僅限於ENG版本(工程版本)和已取得root權限,否則會有如下提示
adb pull <原始路徑> <目標路徑>
將原始路徑的文件導出到目標路徑
很形象,就是將文件從原始路徑推到目標路徑
如:adb pull system/app/XXX.apk D:/
->將手機system/app目錄下的xxx.apk導出到D盤根目錄
->需要注意system/app需要有ROOT權限或者是ENG版本才有導入/導出權限
->導入前需要先adb remount(獲取更高權限一下),不然成功不了
例如測試經常用到的三條命令,也都是如此
adb logcat -v time > d:log.txt 現抓adb log並導出log到電腦D盤根目錄
adb pull /sdcard/mtklog d:mtklog 用adb的方式導出mtklog到電腦D盤根目錄
adb pull /data/anr d:anr 導出anr log到電腦D盤根目錄
3.運行實例:
- 鏈接手機,輸入adb devices查看設備的連接情況
如圖即為鏈接成功
2,。確認設備連接成功后,輸入adb shell進入shell界面
$代表user版本,如果是#則代表當前版本是ENG版本
3.查看系統的程序
命令ls system/app
4.隨便挑一個程序,以瀏覽器為例:
輸入monkey -p com.android.browser -v 500
其中其中-p表示對象包 –v 表示反饋信息級別,它啟動瀏覽器,並向其發送500個偽隨機事件,數字是可以隨意改的。
確定后在手機上可以看見屏幕上瀏覽器的界面不斷變化,模擬各種操作。
更多命令可以參考附件
Monkeyrunner
1首先說一下monkey和monkeyrunner的區別
Monkey工具直接運行在設備或模擬器的adb shell中,生成用戶或系統的偽隨機事件流。
monkeyrunner工具則是在工作站上通過API定義的特定命令和事件控制設備或模擬器。可以進行精細的如點,拖拽等具體的操作,相對來說具有更強的可操作性。而monkey只能是生成隨機的事件流,當然事件流里面各個事件的百分比其實是可以調整的,所以稱之為為偽隨機。
Monkeyrunner能做什么
通過monkeyrunner,您可以寫出一個Python程序去安裝一個Android應用程序或測試包,運行它,向手機發送模擬擊鍵,截取它的用戶界面圖片,並將截圖存儲於工作站上。monkeyrunner工具的主要設計目的是用於測試功能/框架水平上的應用程序和設備,或用於運行單元測試套件,但您當然也可以將其用於其它目的。
環境配置
同樣的,要使用monkeyrunner也要能配置環境,同時安裝一些必須的軟件
軟件鏈接:
JDK:http://www.androiddevtools.cn/
ADT Bundle:http://www.androiddevtools.cn/
注意選擇自己的系統是32還是64位的
解壓ADT得到的三個文件如圖,JDK是安裝JDK出現的文件夾
打開SDK,添加標注的兩個路徑到環境變量path,方法同上面那個一樣的
至於JDK直接下載安裝就好,安裝目錄記清楚,添加安裝目錄下的bin文件路徑到path
至於python大家可以自由選擇安裝與否
下載路徑:https://www.python.org/downloads/windows/
安裝以后可以在path中添加C:\Python34\Tools\Script
具體安裝的路徑不同,添加路徑有所不同,都是安裝目錄中的Tools\Scripts
配置好環境以后,在cmd環境下輸入monkeyrunner
出現如圖提示,即為環境配置成功,可正式使用monkeyrunner工作了
命令:monkeyrunner
接下來,首要一件事就是導入monkeyrunner所要使用的模塊。直接在shell命令下輸入:
from com.android.monkeyrunner import MonkeyRunner
from com.android.monkeyrunner import MonkeyDevice
from com.android.monkeyrunner import MonkeyImage
OK,這步完成我們就可以利用monkeyrunner進行測試工作了。
運行實例
首先導入模塊,然后連接設備
device=MonkeyRunner.waitForConnection() #連接手機設備
device.touch(300,300,'DOWN_AND_UP')點按屏幕的某個位置,坐標是可以根據需要調整
將手機隨便打開一個軟件,繼續輸入
device.press('KEYCODE_HOME','DOWN_AND_UP')點擊home鍵
觀察手機是否會回到主屏幕
大概的流程就是這樣,在這種情況下,能對手機進行操作,模擬手機的操作。例如模擬發短信。自己手動操作的時候需要7個步驟:
1點開短信2.新建短信3.點擊號碼輸入框4.輸入號碼
6.點擊信息內容輸入框6輸入內容7點擊發送
點擊命令是touch,輸入命令是type,然后配上相應的坐標和輸入的內容,就能通過命令控制手機完成發短信這一操作。
更多命令操作可以查看附件或者百度,靈活使用各種命令來達到自己想要的結果才是精髓。
公司測試一般會給一個以python寫成的文件,可以拖入運行。簡單的來說我們用的時候只需要修改其中的幾個參數就好了
更多命令參考附件