App穩定性測試
穩定性測試就是指軟件長時間的持續運行,系統版本是否穩定,是否可否持續的爲用戶提供服務。android
指標:面試
異常的次數shell
異常的頻率windows
App的穩定性測試如何實施?app
首選Monkey性能
Monkey是向系統發送隨機的用戶事件流(如按鍵輸入、觸摸屏輸入和手勢輸入等),實現對正在開發的應用程序進行穩定性測試。能夠更好的模擬用戶操做,確保App的穩定性。學習
Monkey運行緣由測試
1、Monkey 程序是由 Android 系統自帶,使用 Java 語言寫成,其自己是安卓系統下的一個monkey.jar文件。在Android文件系統中的存放路徑是: /system/framework/monkey.jar;網站
2、Monkey.jar程序是由一個名爲「monkey」的Shell腳原本啓動執行,shell腳本在Android文件系統中 的存放路徑是:/system/bin/monkey;spa
3、Monkey 啓動方式:在 cmd 命令提示符裏面輸入命令行來啓動 monkey 測試。
4、命令行:adb shell monkey——monkey.shell——monkey.jar——安卓進程——設備上執行測試
Monkey原理圖:
1、所需軟件:
Python3.7
Pycharm社區版
SDK 下載網址:http://www.androiddevtools.cn/
雷神模擬器
58同城apk
2、SDK環境搭建
一、下載 android-sdk,這個是作 android 測試和開發的必備環境,若是不
會下載的話,在 QQ 羣:902061117 羣文件下載
一、解壓後,裏面有個 SDK manager.exe 雙擊打開
3.勾選你要如今的 API 版本和對應的 android 版本,後面模擬器會用到
,而後坐等下載
在系統變量新建:ANDROID_HOME,對應變量值爲:
E:\android-sdk-windows(sdk 安裝路徑)
2.path 添加兩個變量,將如下箭頭所指的兩個文件路徑添加到 path 裏
path下添加以下兩個路徑:
E:\android-sdk-windows\tools 和 E:\android-sdk-windows\platform-tools
adb環境
1.由於 adb 是在 D:\androidsdk\android-sdk-windows\platform-tools
這個目錄下的,因此上面添加了環境變量後,能夠直接在 cmd 裏面運行了。
2.在 cmd 輸入 adb 能夠查看對應版本號
3、鏈接雷神模擬器---adb connect 127.0.0.1:5555
首先要打開USB調式選項(默認是沒有開啓調式模式的)
開啓調式模式操做步驟:依次打開設置--關於-連擊5次版本號,再返到我設置主頁就能夠看到開發者選項
雷電模擬器:adb connect 127.0.0.1:5555
使用指令:adb devices
鏈接信息解釋
手機設備:顯示設備的序列號,即b2355f8a
模擬器:顯示ip地址和端口,即127.0.0.1:62001
device:已識別的設備,鏈接成功
unauthorized:沒有受權,須要手機上受權後才能鏈接
unkown:未識別的設備
offline:離線設備
主流安卓模擬器鏈接方式:
夜神模擬器:adb connect 127.0.0.1:62001
逍遙安卓模擬器:adb connect 127.0.0.1:21503
每天模擬器:adb connect 127.0.0.1:6555
海馬玩模擬器:adb connect 127.0.0.1:53001
網易MUMU模擬器:adb connect 127.0.0.1:7555 MacOS:adb connect 127.0.0.1:5555
genymotion模擬器:adb connect 127.0.0.1:5555
谷歌原生模擬器:adb connect <設備的IP地址>:5555
Monkey
Monkey命令-事件數
Monkey支持的全部命令
adb shell monkey
必選的命令
COUNT:事件數
經過事件數量來測試穩定性
adb shell monkey 次數 即,adb shell monkey 50
注:可能小夥伴發現這速度也忒快了,我看都沒看清,這人的速度也沒這麼快,不合理。哈,那接着,控制每一次操做的間隔時間
Monkey命令-事件間隔
--throttle <milliseconds> 在事件之間插入固定延遲。經過這個選項能夠控制Monkey發送事件的頻率。時間單位是ms(毫秒)1000毫秒=1秒
例1:發送10個事件,持續執行時間1分鐘
adb shell monkey --throttle 6000 10,即10個事件,作完一個事件就等待6秒後再執行
備註:扯了半天,小夥伴想知道我要去檢測公司的app倒 底要怎麼整
Monkey命令-指定包
-p <allowed-package-name> 此參數指定了一個包,Monkey將只容許系統啓動這些包裏的Activity
-p <allowed-package-name1> -p <allowed-package-name2> 若是用此參數指定了多個包,Monkey將只容許系統啓動這些包裏的Activity
例3:對58同城進行穩定性測試,執行100次事件
adb shell monkey -p com.wuba 100
獲取包名
adb shell pm list packages
知識點:
有可夥伴可能會問,我壓根不知道我學習的app的名包叫啥那怎麼找呢?
aapt dump badging D:\test\xxx.apk(APK的全名),如手機淘寶.apk
Monkey命令-日誌設置
-v Level 0 除啓動提示、測試完成和最終結果以外,提供較少信息
-v-v Level 1 提供較爲詳細的測試信息,如逐個發送到Activity的事件
-v-v-v Level 2 提供更加詳細的設置信息,如測試中被選中的或未被選中的Activity。
例4:對58同城進行穩定性測試,執行100次事件,分別查看不一樣日誌級別記錄的信息狀況
adb shell monkey -p com.wuba -v 100
adb shell monkey -p com.wuba -v-v 100
adb shell monkey -p com.wuba -v -v -v 100
日誌導出到本地
adb shell monkey -p com.wuba -v-v-v 100 >d:\wuba.txt
Monkey命令-seed值
在Monkey運行過程當中,確定會發現異常、奔潰、無響應等問題,對於此類問題如何進行復現呢?
-s <seed> 僞隨機數生成器的seed值。若是用相同的seed值再次運行Monkey,它將生成相同的事件序列。
使用場景:
復現bug,迴歸測試(驗證bug)
adb shell monkey -s 1593077384911 -p com.wuba -v-v-v 100 >d:\wuba4.txt
adb shell monkey -s 100 -p com.wuba -v-v-v 50
在Monkey運行過程當中,咱們能夠經過結束進程的方式來終止Monkey的執行,固然在運行過程當中遇到異常、奔潰等狀況Monkey也會中止。爲了保證執行的事件數執行完整,咱們能夠經過調試選項的設置來防止在運行過程當中Monkey命令的提早結束。
--ignore-crashes 忽略在應用程序出現crash時致使的monkey中止
--ignore-timeouts 忽略在應用程序出現ANR問題時致使monkey中止
--ignore-security-exceptions 忽略應用程序發生許可錯誤時致使monkey中止
例5:對58同城進行穩定性測試,執行50次事件,忽略過程當中遇到的異常,直到50次事件完成
adb shell monkey -p com.wuba --throttle 500 --ignore-crashes --ignore-timeouts --ignore-security-exceptions -v-v-v 50
部份參數:
--pct-touch:觸摸事件 --pct-trackball :軌跡事件
--pct-motion:動做事件(手勢) --pct-nav :基本導航事件
--pct-appswitch:啓動activity事件 -pct-majornav:主要導航事件
--pct-rotation:屏幕旋轉事件 --pct-syskeys:「系統」按鍵事件
總結:
一、Monkey是對安卓apk進行隨機事件的操做,經過報告來查看apk是否穩定
二、只適用安卓平臺
三、根據公司不一樣產品的特性可設置不一樣機率來針對性測試或迴歸(如抖音他的滑動頻率高)
若是對軟件測試、接口測試、自動化測試、性能測試、持結集成、面試經驗交流。感興趣能夠902061117,羣內會有不按期的發放免費的資料連接,這些資料都是從各個技術網站蒐集、整理出來的,若是你有好的學習資料能夠私聊發我,我會註明出處以後分享給你們。