=========================================
(一)是隨機的命令對APP進行自動化測試,可以快速發現APP的問題,若執行時設置的-S 100出現了一個錯誤,后面再執行時,只需設置相同的-S,就會按照第一次執行命令的順序再次執行
(二)自動化就是比較有針對性的對某一個功能進行自動測試,比如一個功能偶發了一個問題,這個時候就可以寫個腳本多次看看能不能復現。
=========================================
1.編寫規則
>>腳本優勢:簡單、快捷、不需要借助任何工具,可以做簡單的性能測試
>>腳本缺點:只能簡單實現坐標、按鍵等基本操作,在不同屏幕尺寸、分辨率的手機上無法復用
>>腳本格式:
#頭文件、控制monkey發送消息的參數
type = raw events //表示原始事件
count =10 //腳本包含的指令
speed = 1.0 //腳本執行速度,以上可以參考該固定格式
# 以下是monkey命令
start data >> //腳本開始提示
LaunchActivity(pkg_name,activity)
DispatchPress(KRYCODE_ENTER)
DispatchPress(KEYCODE_HOME)
2.Monkey常見API
>>LaunchActivity(pkg_name,activity) 啟動應用的Activity:
pkg_name:包名,activity:應用程序入口activity
>>Tap(x,y,tapDuration) 模擬單擊事件:
x,y:坐標, tapDuration:點擊的持續時間,可以省略,有默認時間
>>RotateScreen(rotationDegree,persist)
rotationDegree: 旋轉角度,persist:旋轉之后是否固定
>>DispatchPress(keyname) 按鍵事件
>>DispatchFlip(true/false) 打開或者關閉軟鍵盤:軟件鍵盤,如訊飛
>>RunCmd(cmd) 在設備上運行shell命令
>>PressAndHold(x,y,pressDuration) 模擬長按事件:
pressDuration: 長按持續時間
>>DispatchString(input) 輸入字符串
>>DeviceWakeUp() 喚醒屏幕
>>UserWait(sleepTime) 讓腳本中斷一段時間,防止找不到元素報錯
3.Monkey腳本編寫步驟
3.1了解常用的API規則
3.2確定步驟,如下:
>>獲取包名和Activityname
1)通過sdk自帶的aapt工具:
2)命令行執行:
當前路徑下cmd,輸入: aapt dump badging 被測應用程序安裝包路徑(可拖拽),回車
3)查找包名和應用程序入口Activityname
>>一步一步在手機上操作,並獲取像素點
利用工具(sdk自帶uiautomatorview.bat或者開發者選項中的坐標位置)
1)sdk自帶uiautomatorview.bat:較麻煩,不推薦使用
2)開發者選項中的坐標位置
關於手機--5連擊版本號--開發者選項顯示--進入開發者選項--找到顯示觸摸操作和指針位置並開啟,此時鼠標點擊屏幕時最上方就會顯示坐標
>>要仔細的檢查下,是否腳本上的每一步都跟你的手動操作對應
>>檢查腳本,跑一下腳本
3.3運行腳本
將文件放到手機中,adb push 本地monkey腳本文件 /data/local/tmp
運行文件:adb shell monkey -f 手機文件地址/文件名稱 數量
4.實例演示
要求:打開瀏覽器,輸入www.baidu.com,測試10次
步驟解析:
1).打開瀏覽器
2).輸入網址
3).確認,載入網址
4).完成,返回到桌面
==============================================================
問題1:瀏覽器為系統級別應用程序,我們沒有該apk的安裝包怎么辦?
解決:
首先,第三方應用程序是放在/data/app目錄的,在該目錄下可以找到第三方應用程序apk,如圖:
base.apk即我們安裝的某第三方apk包名,只不過被改名了,可以把該apk拉到本地重新安裝確認:
重點來了, 系統級別的安裝包存放在sysytem目錄:
要去確認是存放在app目錄下還是priv-app目錄下,分別進去看一下,找到拉到指定目錄即可,按照3.2操作找到包名和應用程序Activity名
=====================================================================
操作:
1)創建txt文件,編寫腳本:
2)把腳本推送到/data/local/tmp目錄下
adb push 腳本路徑 /data/local/tmp
3)執行
adb shell monkey -f /data/local/tmp/monkey_browser.txt 10