Monkey穩定性測試——你必須要懂的App穩定性測試


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;
3、Monkey 啟動方式:在 cmd 命令提示符里面輸入命令行來啟動 monkey 測試。

4、命令行:adb shell monkey——monkey.shell——monkey.jar——安卓進程——設備上執行測試

Monkey原理圖:

在這里插入圖片描述

一、所需軟件:

Python3.7
Pycharm社區版
SDK 下載網址:http://www.androiddevtools.cn/
雷神模擬器
58同城apk

二、SDK環境搭建

1、下載 android-sdk,這個是做 android 測試和開發的必備環境,如果不

會下載的話,在 QQ 群:644956177群文件下載

1、解壓后,里面有個 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 可以查看對應版本號
在這里插入圖片描述
三、連接雷神模擬器—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 在事件之間插入固定延遲。通過這個選項可以控制Monkey發送事件的頻率。時間單位是ms(毫秒)1000毫秒=1秒

例1:發送10個事件,持續執行時間1分鍾

adb shell monkey --throttle 6000 10,即10個事件,做完一個事件就等待6秒后再執行
在這里插入圖片描述
備注:扯了半天,小伙伴想知道我要去檢測公司的app倒 底要怎么整

Monkey命令-指定包

p 此參數指定了一個包,Monkey將只允許系統啟動這些包里的Activity

-p -p 如果用此參數指定了多個包,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值再次運行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:“系統”按鍵事件

總結:

1、Monkey是對安卓apk進行隨機事件的操作,通過報告來查看apk是否穩定

2、只適用安卓平台

3、根據公司不同產品的特性可設置不同概率來針對性測試或回歸(如抖音他的滑動頻率高)

如果對軟件測試、接口測試、自動化測試、性能測試、持結集成、面試經驗交流。感興趣可以644956177,群內會有不定期的發放免費的資料鏈接,這些資料都是從各個技術網站搜集、整理出來的,如果你有好的學習資料可以私聊發我,我會注明出處之后分享給大家。


免責聲明!

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



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