導航:首頁 > 編程語言 > monkey是什麼程序

monkey是什麼程序

發布時間:2023-04-18 14:41:39

1. APP穩定性測試工具:Monkey

Monkey 是一款 app 的自動化測試工具,monkey 是猴子的意思,所以從原理上說,它的自動化測試就類似猴子一樣在軟體上亂敲按鍵,猴子什麼都不懂,就愛搗亂。Monkey 原理也是類似,通過向系統發送偽隨機的用戶事件流( 如按鍵輸入、觸摸屏輸入、滑動 Trackball、手勢輸入等操作 ),來對設備上的程序進行測試,檢測程序長時間的穩定性,多久的時間會發生異常。

Monkey 工具存在 Android 系統中,使用 java 語言寫成,jar 包在 Android 文件系統中的存放路徑是:/system/framework/monkey.jar;Monkey.jar 程序是由一個名為「monkey」的 Shell腳本來啟動執行,shell 腳本在 Android 文件系統中的存放路徑是:/system/bin/monkey;monkey 需要通過 adb 來喚醒,即通過在 cmd 窗口中執行: adb shell monkey {+命令參數}來進行 Monkey 測試;

在 Monkey 運行的時候,它會生成事件,並把它們發給系統。同時,Monkey 還對測試中的系統進行監測,對下列三種情況進行特殊處理:

(1)如果限定了 Monkey 運行在一個或幾個特定的包上,那麼它會監測試圖轉到其它包的操作,並對其進行阻止;

(2)如果應用程序崩潰或接收到任何失控異常,Monkey 將停止並報錯;

(3)如果應用程序產生了應用程序不響應 ANR(application not responding)的錯誤,Monkey 將會停止並報錯;按照選定的不同級別的反饋信息,在 Monkey 中還可以看到其執行過程報告和生成的事件。

0、–help : 列出簡單的用法

1、允許啟動手機裡面所有的 App , 隨機操作 1000 次

2、-p : 允許啟動 App 的包名

啟動一個包名的應用,qq 的包名為: com.tencent.mobileqq

案例:隨機操作 手機 QQ 1000 次

案例:隨機操作 手機 QQ 和 微信 1000 次

3、-v : 操作日誌記錄

命令行的每一個-v將增加反饋信息的級別。

4、-s : 偽隨機數生成器的seed值

如果用相同的seed值再次運行monkey,將生成相同的事件序列。

5、--throttle : 插入固定延遲

在事件之間插入固定延遲。通過這個選項可以減緩Monkey的執行速度。如果不指定該選掘歲項,Monkey將不會被延遲,事件將盡可能快地被執行。

案例:隨機執行 500 個事件,每個事件之間延遲 500 毫秒被執行。

6、--ignore-crashes : 忽略操作是崩潰異常

通常,應用發生崩潰或異常時Monkey會停止運行。如果設置此項,Monkey將繼續發送事件給系統,直到事件計數完成。

7、--ignore-timeouts : 忽略超時

通常,應用程序發生任何超時錯誤(如「Application Not responding」對話框)Monkey將停止運行,設置此項,Monkey將繼續發送事件核和給系統,直到事件計數完成。

8、--ignore-security-exceptions : 忽略程序發生許可異常

通常,當程序發生許可錯誤(例如啟動一些需要許可的Activity)導致的異常時,Monkey將停止運行。設置此項,Monkey將繼續發送事件給系統,直到事件計數完成。

9、調整觸摸事件百分比

觸摸事件不單單是按鍵,它泛指發生在某一位置的一個down-up事件。

10、調整手勢事件百分比

11、調整應用啟動事件的百分比

如果你希望調整應用啟動事件的百分比。

12、調整屏幕旋轉事件百分比

Monkey弱點:

Monkey雖然可以根據一個指定的命令腳本發送按鍵消息,但不支持條件判斷,不改散盯支持讀取待測界面的信息來執行驗證操作

2. 移動端手機 App 耗電量測試:Monkey 電量測試基本操作及 Android 性能優化

Monkey 測試簡介

存放路徑:Monkey程序是Android系統自帶的,由Java語言寫成,在Android文件系統中的存放路徑是: /system/framework/monkey.jar。

大致操作流程:通過名為「monkey」的Shell腳本去啟動Monkey.jar程序(shell腳本在Android文件系統中 的存放路徑是:/system/bin/monkey),在你指定的APP應用上模擬用戶點擊,滑動,輸入等操作以極快的速度來對設備程序進行壓力測試,檢測程序是否會發生異常,然後通過日誌進行排錯。

主要目的:測試app 是否會是否會Crash。

操作命令格式:adb shell monkey {+命令參數}

獲取Android包名方法:(注意:請開啟手機開發者模式,請開啟手機USB調試模式)

查看正在運行的程序的包名:adb shell mpsys activity activities | sed -En -e '/Running activities/,/Run #0/p' (例如:我清理手機後台之後,開啟了QQ,輸入命令之後,就會出現QQ的進程,框的地方就是qq的包名)

monkey常用操作命令簡介

-p 包名:指定應用程序。例如:adb shell monkey -p 包名 事件總數

-v:列印log級別,-v越多日誌信息越詳細,最多支持3個。例如:adb shell monkey -p 包名 -v -v -v 事件總數

-s:偽隨機數生成器的 seed 值,通俗的說就是個標記,後面跟數字,例如:執行adb shell monkey -s 1 -p 包名 事件總數,這個我標記了-s 1,命令操作完之後,我發現有日誌報錯,我想重新執行這個monkey操作,那你握核就可以繼續執行這個命令,排錯時常用。

-f:後接測試腳本名,例如:adb shell monkey -f 腳本名 事件總數

-throttle:翻譯減速的意思,後面接時間,單位為ms,,表示事件之間的固定延遲,如果不接該項,monkey將不會延遲,例如:adb shell monkey --throttle 500 -p 包名 事件總數

--pct-事件類別 11個事件百分比控制(有的是9種事件,沒有--pct-pinchzoom,--pct-rotation事件)由安卓SDK決定

11種事件,按順序羅列的

--pct-touch {+百分比}:0

翻譯觸摸,觸摸事件泛指發生在某一位置的一個down-up事件,點擊

--pct-motion {+百分比}:1

翻譯動作,動作事件泛指從某一位置接下(即down事件)後經過一系列偽隨機事件後彈出(即up事件)

--pct-pinchzoom {+百分比}:2

翻譯二指縮放,智能機上的放大縮小手勢操作事件

--pct-trackball {+百分比}: 3

翻譯軌跡,軌跡事件包括一系列的隨機移動,以及偶爾跟隨在移動後面的點擊事件

--pct-rotation {+百分比}:4

翻譯屏幕旋轉,橫屏豎屏事件

--pct-nav {+百分比}:5

翻譯基本導航,基本導航事件主要來自方向輸入設備的上、下、左、右事件

--pct-majornav {+百分比}:6

翻譯主要導航,主要導航事件通常指引發圖形界面的一些動作,如扮皮辯鍵盤中間按鍵、返回按鍵、菜單按鍵等

--pct-syskeys {+百分比}:7

翻譯系統按鍵,系統按鍵事件通常指僅供系統使用的廳缺保留按鍵,HOME鍵、BACK鍵、撥號鍵、掛斷鍵、音量鍵等

--pct-appswitch {+百分比}:8

翻譯應用啟動,應用啟動事件(activity launches)即打開應用,通過調用startActivity()方法最大限度地開啟該package下的所有應用

--pct-flip {+百分比}:9

翻譯翻轉,鍵盤輕彈百分比,如點擊輸入框,鍵盤彈起,點擊輸入框以外區域,鍵盤收回

--pct-anyevent {+百分比}:10

翻譯其他類型,其他類型事件指上文中未涉及的所有其他事件,keypress、不常用的button等

百分比控制以及使用

首先注意一點,這個Event percentages在不同版本的SDK版本中順序可能會不一樣。

如果在monkey參數中不指定事件參數,這些動作都是隨機分配的,11個動作其分配的百分比之和為100%,通過添加命令選項來控制每個事件的百分比。

添加事件百分比之後的情況,舉例添加--pct-touch事件百分比為100:

命令: adb shell monkey -v -p 包名 --pct-touch 100 100

結果:

說明:尷尬啊,我這個vent percentages竟然有12種,多了一種什麼我也不知道,但我敢肯定這跟SDK版本有關系,想知道的同學可以自己從安卓SDK中反編譯出monkey源碼,通過查看源碼中的MonkeySourceRandom.java文件獲知!查出來的同學可以告知我下。

說明:尷尬啊,我這個vent percentages竟然有12種,多了一種什麼我也不知道,但我敢肯定這跟SDK版本有關系,想知道的同學可以自己從安卓SDK中反編譯出monkey源碼,通過查看源碼中的MonkeySourceRandom.java文件獲知!查出來的同學可以告知我下,我想做伸手黨

-ignore-crashes:翻譯忽略崩潰,當應用程序崩潰或發生失控異常時,monkey將繼續運行直到計數完成。如果不設置此項,monkey遇到上述崩潰或異常將停止運行。

-ignore-timeouts:翻譯忽略超時,當應用程序發生任何超時錯誤(如ANR,即Application Not Responding)時,monkey將繼續運行直到計數完成。如果不設置此項,monkey 遇到此類超時將停止運行。

monkey測試中,如何終止運行:

方法一:

新建一個窗口

執行: adb shell ,

再執行ps | grep monkey,返回來的第一個數字,即是monkey的進程號

然後kill pid 進程號。如圖

對手機進行重啟

新建一個窗口

執行adb reboot

log日誌導出

保存到電腦上。

執行:adb shell monkey -p 包名 -v 1000 > /Users/weixiangyang/Desktop/monkey.txt

例如:保存到電腦上標准流與錯誤流分開保存,分別命名為info.txt,error.txt

info.txt:此文件在手機上的SDCARD中,主要記錄了MONKEY測試時發送的各種事件,如觸摸事件的位置等等。

error.txt:此文件在手機上的SDCARD中,主要記錄了MONKEY測試時產生的一些ANR、強制關閉等異常。 執行:adb shell monkey -p 包名 -v 1000 1>/Users/weixiangyang/Desktop/info.txt 2>/Users/weixiangyang/Desktop/error.txt

例如:保存到電腦上並命名為monkey.txt

保存到手機上。注意:手機要root

例如:保存到手機上並命名為monkey.txt

執行:

adb shell說明:進入adb shell後就相當於進入linux的root下面,但是沒有許可權在裡面創建文件,所以手機要root

monkey -p 包名 -v 1000 > /mnt/sdcard/monkey.txt

注意:我的 adb shell 跟monkey XXX是分開執行的,分兩行!!!

例如:保存到電腦上標准流與錯誤流分開保存,分別命名為info.txt,error.txt

執行:adb shell monkey -p 包名 -v 1000 1>/mnt/sdcard/info.txt 2>/mnt/sdcard/error.txt

3. MONKey 是什麼意思

Monkey是可以槐扮散運行在模擬器里或實鉛氏際設備中的程序。它向系統發送偽隨機的用戶事件流(如按鍵輸入、觸摸屏缺緩輸入、手勢輸入等),實現對跡搐管誹攮賭歸澀害績正在開發的應用程序進行壓力測試。.

4. adb命令和monkey總結

移動動測測試試基基礎礎

adb常常用用命命令令總總結結

1. adb / adb -help 使用幫助

2. adb devices 查看連接到電腦的設備

3. adb install example.apk 安裝程序

4. adb -s emulator-5554 install example.apk 安裝程序到指定的設備上(模擬器)

5. adb pull <remote> <local> 將設備上文件保存到電腦上

6. adb push <local> <remote> 將本地的文件上傳到設備上

7. adb start-server 重啟adb服務

8. adb kill-server 殺掉adb服務

9. adb shell 進入命令行交互模式,進入之後可以像在linux輸入shell命令一樣來操作手機設備(android本來就是基於linux的)

10. adb logcat <信息顯示優先順序參數> 顯示日誌信息 優先順序從低到高順序排

11.adb shell cat /proc/cpuinfo 查看寬謹燃手機CPU,

12.adb shell ps 查看進程信息

Monkey命令實戰

1.Monkey是什麼?

Monkey是Android中的一個命令行工具,可以運行在模擬器或者實際設備中

向系統發送偽隨機的用戶事件流(按鍵輸入、觸摸屏輸入、手勢輸入等)

實現對正在開發的應用程序進行測試

Monkey測試之一種為了測試軟體的穩定性、健壯性的快速有效的方式

2.Monkey的特徵

測試對象僅為應用程序包,有一定的局限性(不能對源碼進行測試)

Monkey測試使用的事件流數據是隨機的,不能進行自定義

可以對MonkeyTest對象,事件數量,類型、頻率等進行設置

3. Monkey使用

adb shell monkey [options]

adb shell monkey -p 包名 -v 500

-p 指定測試程序包名

-v 顯示默認程度的信息

500 事件數設定為500

例如: adb shell monkey -p com.android.calculator2 -v 500

4. Monkey命命令令結結果果分分析析

1. 找monkey裡面那個出錯的地方

2. 查看monkey裡面出錯前的一些事件動作,並手動執行該動作

3. 若以上步驟還不能找出,使用之前執行的monkey命令再執行一遍,seed值要一樣(seed值一樣,發送的偽隨機事件流也一樣)

4. 注意第一個switch以及其他信息

seed值和,不同event類型比例

5.Monkey測試的目的

1. ANR問題:在日誌中搜索「ANR」

2. 崩潰的問題:在日誌中搜索「Exception」

3. ANR:Application Not Responding,在Android中,如慎虛果應該程序有一段時間響應不夠靈敏,系統會向用戶顯示一個對話框,這個對話框稱作應

用程序無響應對話框。用戶可以選擇「等待」而讓程序繼續運行,也可以選擇「強制關晌洞閉」應用。 好的程序應該能流暢運行,不能出現ANR問題

Monkey命令進階

1.運行時機

產品功能穩定之後進行

2. monkey更更復復雜雜的的命命令令

adb shell monkey -p packagename -v -v -- throttle 600 88

-v :代表整個Monkey運行的次數,多個 -v 可以定製Monkey報告的等級

--throttle 600 : 每個操作都間隔時間600ms

88 :執行的事件數

adb shell monkey -p packagename -v -v --pct-touch 50 --pct-trackball 30 --throttle 600 88

adb shell monkey -p packagename -v -v --pct-touch 50 --pct-trackball 30 -s 1234 --throttle 600 88

--pct-touch :設置在整個過程中點擊操作所佔的百分比

--pct-trackball: 設置滾輪在所用操作中的百分比

--ignore-crashes:崩潰之後繼續測試,重新啟動程序

--ignore-timeouts:遇到超時,也繼續執行

-v:

命令行的每一個-v將增加反饋信息的級別

Level 0(預設值)除啟動提示、測試完成和最終結果之外,提供較少信息

Level 1提供較為詳細的測試信息,如逐個發送到Activity的事件

Level 2提供更加詳細的設置信息,如測試中被選中的或未被選中的Activity

更多monkey命令:http://xqtesting.blog.51cto.com/4626073/1430654

實測命令(經常用到的,可以參考):

adb shell monkey -p com.xx.xxx(包名)--throttle 500 --ignore-crashes --igonre-timeouts --ignore-security-exceptions --igonre-native-crashes --

monitor-native-crashes -v -v -v 1000000 >> D:\monkeyScreenLog.log

說明:忽略crashes、timeout等是為了出問題是monkey繼續運行下去,希望能抓取更多的出錯信息

3.可可以以練練習習使使用用的的apk包名

com.android.calculator2

com.android.browser

com.android.music

com.android.email

com.android.contacts

monkey也可以進行壓力測試。

可靠性測試

      穩定性測試:長時間使用軟體不會出現無響應

                  monkey:安卓系統常用穩定性和壓力測試工具

                  語法:monkey -p 包名  --throttle 數值(間隔時間,單位ms) -v  數值(操作次數)

                      monkey -p com.emicro.emicrophone --throttle 500 -v 300

                    百分比事件

                      0:點擊事件  參數--pct-touch

                      1:滑動事件      --pct-motion

                      2:縮放事件      --pct-pinchzoom

                      3:軌跡球事件    --pct-trackball

                      4:屏幕旋轉      --pct-rotation

                      5:基本導航事件  --pct-nav

                      6:主要導航事件    --pct-majornav

                      7:系統按鍵事件    --pct-syskeys

                      8:activity啟動事件  --pct-appswitch

                      9:鍵盤喚出隱藏事件  --pct-flip

                      10:其他事件          --pct-anyevent

      異常測試  :斷電,斷網,異常退出。。。

adb 調試橋

    adb devices  檢查設備是否連接

    adb install apk文件路徑文件名

    adb uninstall 包名  卸載

    aapt d badging  apk文件路徑文件名

    adb shell    進入安卓系統

5. APP自動化測試中Monkey和 MonkeyRunner有什麼區別

Monkey是一個命令行工具,可以運行在模擬器里或實際設備中,它是一種輕量級的性能測試工具。它向系統發送偽隨機的事件流,實現對正在運行的應用程序進行壓力測試。

Monkey包括許多選項,包括:基本配置選項,;運行約束選項;事件類型和頻率;調試選項。運行的時候,它生成事件,並把它們發給系統。同時,Monkey還對測試中的系統進行監測。如果限定了Monkey運行在一個或幾個特定的包上,那麼它會監測試圖轉到其它包的操作,並對其進行阻止。如果應用程序崩潰或接收到任何失控異常,Monkey將停止並報錯。如果應用程序產生了應用程序不響應的錯誤,Monkey將會停止並報錯。按照選定的不同級別的反饋信息,在Monkey中還可以看到其執行過程報告和生成的事件。

相對於Monkey工具直接運行在設備或模擬器的adb shell中,生成用戶或系統的偽隨機事件流。而MonkeyRunner工具則是在工作站上通過API定義的特定命令和事件控制設備或模擬器。提供了一個API,使用此API寫出的程序可以在Android代碼之外控制Android設備和模擬器。

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

TestBird - 手游和App自動化測試平台

6. adb命令之monkey壓力測試篇

一. 首先搭建monkey的運行環境

二. 環境搭建成功後可以進行monkey壓力測試
1.電腦usb連接手機
2.開始 ->運行(win+R鍵),輸入cmd,在命令行輸入adb shell
3.接下來就可以運行monkey test的命令
如:monkey -p com.test -v 100 (com.test為需要測試的包)

三. monkey壓力測試命令詳解
monkey是sdk中附帶的一個工具,該工具 進行壓力測試,然後開發人員根據monkey列印的日誌結局測試中出現的問題
monkey測試中所有的事件都是隨機產生的,不帶有任何人的主觀性

四. 標準的monkey命令:
[adb shell] monkey [options] <eventcount>,如:adb shell monkey -v 500

五. 在monkey測試中常用的命令組合有:

六. monkey options 通常分為四大類——常用選項、時間選項、約束選項、調試選項
1.常用選項如下:
--help:列印幫助信息
-v:指定列印信春賀息的詳細級別,一個 -v增加一個級別 , 默認級別為 0 。

2.事件選項如下:
-s:指定產生隨機事件種子值,相同的種子值產生相同的事件序列。如: -s 200
--throttle:每個事件結束後的間隔時間——降低系統的壓力(如不指定,系統會盡快的發送事件序列)。如:--throttle 100
--pct-touch:指定觸摸事件的百分比,如:--pct-touch 5%
--pct-motion <percent> (滑動事件)
--pct-trackball <percent> (軌跡球事件)
--pct-nav <percent> (導航事件 up/down/left/right)
--pct-majornav <percent> (主要導航事件 back key 、 menu key)
--pct-syskeys <percent> (系統按鍵事件 Home 、Back 、startCall 、 endCall 、 volumeControl)
--pct-appswitch <percent> (activity之間的切換)
--pct-anyevent <percent>(任意轎信事件)

3.約束選項如下:
-p:指定有效的package(如不指定,則對系統中所有package有效),一個-p 對應一個有效package, 如:-p com.ckt -p com.ckt.asura;
-c:activity必須至少包含一個指定的category,才能被啟動,否則啟動不閉森輪了;

4.調試選項如下:
--dbg-no-events:初始化啟動的activity,但是不產生任何事件。
--hprof:指定該項後在事件序列發送前後會立即生成分析報告 —— 一般建議指定該項。
--ignore-crashes:忽略崩潰
--ignore-timeouts:忽略超時
--ignore-security-exceptions:忽略安全異常
--kill-process-after-error:發生錯誤後直接殺掉進程
--monitor-native-crashes:跟蹤本地方法的崩潰問題
--wait-dbg:知道連接了調試器才執行monkey測試。

5.列舉一個簡單的monkey命令:
adb shell monkey -p com.xy.android.junit -s 500 -v 10000

但是,在工作中為了保證測試可以完整進行,為了防止發生錯誤時立刻退出壓力測試。更為了 可以方便查看log,monkey 測試命令如下:
adb shell monkey -p com.xy.android.junit -s 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v 10000 > E:\monkey_log\java_monkey_log.txt
monkey作用的包:com.ckt.android.junit
產生時間序列的種子值:500
忽略程序崩潰 、 忽略超時 、 監視本地程序崩潰 、 詳細信息級別為2 , 產生 10000個事件 ,log輸出到E盤monkey_log文件夾下的java_monkey_log.txt

七. monkey 測試結果詳細分析
1.事件所佔比例分析

4.當有FC(Force Close)錯誤

5.logcat輸出的信息:

7. android的app應用,monkey測試是怎麼錄制腳本進行性能測試的 求各位大神補充

Windows下(註:2—4步是為了查看我們可以測試哪些應用程序包,可省略):1、通過eclipse啟動一個Android的emulator2、在命令行中輸入:adbdevices查看設備連接情況C:>-5554device3、在有設備連接的前提下,在命令行中輸入:adbshell進入shell界面C:>adbshell4、查看data/data文件夾下的應用程序包。註:我們能測試的應用程序包都在這個目錄下面C:>adbshell如:com.android.htmlviewercom.android.settingscom.android.netspeedcom.android.providers.userdictionarycom.android.browsercom.android.contactscom.android.alarmclock等5.在其中找到我們需要測試的包名com.marshalchen.MonkeyTest16、以com.marshalchen.MonkeyTest1作為對象進行MonkeyTestmonkey-pcom.marshalchen.MonkeyTest1-v500其中-p表示對象包–v表示事件數量運行過程中,Emulator中的應用程序在不斷地切換畫面。按照選定的不同級別的反饋信息,在Monkey中還可以看到其執行過程報告和生成的事件。如:SendingPointerACTION_DOWNx=35.0y=259.0:SendingPointerACTION_UPx=195.0y=259.0:SendingPointerACTION_DOWNx=295.0y=223.0:Dropped:keys=0pointers=0trackballs=0flips=0等等信息。四、Monkey停止的條件MonkeyTest執行過程中在下列三種情況下會自動停止:1、如果限定了Monkey運行在一個或幾個特定的包上,那麼它會監測試圖轉到其它包的操作,並對其進行阻止。2、如果應用程序崩潰或接收到任何失控異常,Monkey將停止並報錯。3、如果應用程序產生了應用程序不響應(applicationnotresponding)的錯誤,Monkey將會停止並報錯。通過多次並且不同設定下的Monkey測試才算它是一個穩定性足夠的程序。MonkeyRunner使用1Monkey的使用簡潔有效,但是總是給人感覺功能不夠強大。所以,接下來向大家介紹非常給力的工具MonkeyRunner。一、什麼是MonkeyRunnermonkeyrunner工具提供了一個API,使用此API寫出的程序可以在Android代碼之外控制Android設備和模擬器。通過monkeyrunner,您可以寫出一個Python程序去安裝一個Android應用程序或測試包,運行它,向它發送模擬擊鍵,截取它的用戶界面圖片,並將截圖存儲於工作站上。monkeyrunner工具的主要設計目的是用於測試功能/框架水平上的應用程序和設備,或用於運行單元測試套件,但您當然也可以將其用於其它目的。monkeyrunner工具與monkey工具並無關聯。monkey工具直接運行在設備或模擬器的adbshell中,生成用戶或系統的偽隨機事件流。而monkeyrunner工具則是在工作站上通過API定義的特定命令和事件控制設備或模擬器。monkeyrunner工具為Android測試提供了以下特性:1.多設備控制:monkeyrunnerAPI可以跨多個設備或模擬器實施測試套件。您可以在同一時間接上所有的設備或一次啟動全部模擬器(或統統一起),依據程序依次連接到每一個,然後運行一個或多個測試。您也可以用程序啟動一個配置好的模擬器,運行一個或多個測試,然後關閉模擬器。2.功能測試:monkeyrunner可以為一個應用自動貫徹一次功能測試。您提供按鍵或觸摸事件的輸入數值,然後觀察輸出結果的截屏。3.回歸測試:monkeyrunner可以運行某個應用,並將其結果截屏與既定已知正確的結果截屏相比較,以此測試應用的穩定性。4.可擴展的自動化:由於monkeyrunner是一個API工具包,您可以基於Python模塊和程序開發一整套系統,以此來控制Android設備。除了使用monkeyrunnerAPI之外,您還可以使用標準的Pythonos和subpress模塊來調用如adb這樣的Android工具。您還可以向monkeyrunnerAPI中添加您自己的類。monkeyrunner工具使用Jython(使用Java編程語言的一種Python實現)。Jython允許monkeyrunnerAPI與Android框架輕松的進行交互。使用Jython,您可以使用Python語法來獲取API中的常量、類以及方法。

8. Python Appium自動化測試 Monkey搭建+操作

Monkey 是 Android SDK 提供的一個命令行工具, 可以簡單,方便地運行在任何版本的 Android 模擬器和實體設備上。 Monkey 會發送偽隨機的用戶事件流,適合對 App 做壓力測試。

Monkey 測試就像一隻猴攔春子,在電腦面前亂敲鍵盤在測試。 通過 Monkey 程序模擬用戶觸摸屏幕、滑動 Trackball 、 按鍵等操作來對設備上的程序進行壓力測試,檢測程序多久的時間會發生異常。

Android 官方自動化測試領域這只 「猴子」 一旦啟動,就會讓被測的 Android 應用程序像猴子一樣活蹦亂跳,到處亂跑。常用 Monkey 來對被測程序進行壓力測試,檢查和評估被測程序的穩定性。

Android 官方對梁衡物與 Monkey 的描述:

Monkey 是一個程序,運行在模擬器或設備上,並生成偽隨機的用戶事件流,如點擊、觸摸、手勢,以及一些系統級事件。 你可以使用 Monkey 以隨機但可重復的方式對正在開發的應用程序進行壓力測試。

官方文檔: http://www.android-doc.com/tools/help/monkey.html

安裝 Android SDK 並配置環境變數。

Monkey 主要用於 Android 的壓力測試,自動的一個壓力測試小工具, 主要目的就是為了測試 app 是否會 Crash 。

(1) Monkey 程序由 Android 系統自帶,使用 Java 詫言寫成,在 Android 文件系統中的存放路徑是: /system/framework/monkey.jar;

(2) Monkey.jar 程序是由一個名為 「monkey」 的 Shell 腳本來啟動執行, shell 腳本在 Android 文件系統中 的存放路徑是:/system/bin/monkey;

(3) Monkey 命令啟動方式:

Monkey 運行在設備或模擬器上面,可以脫離 PC 運行。普遍做法是將 monkey 作為一個像待測應用發送隨機按鍵消息的測試工具。驗證待測應用在這些隨機性的輸入面前是否會閃退或者崩潰。

Monkey 雖然可以根據一個指定的命令腳本發送按鍵消息,但其支持條件判斷,也支持讀取待測界面的信息來執行驗證操作。

Monkey 程序是橡液 Android 系統自帶的,其啟動腳本是位於 Android 系統的 /system/bin 目錄的 Monkey 文件,其 jar 包是位於 Android 系統的 /system/framework 目錄的 Monkey.jar 文件。用戶主要是通過 adb 命令來啟動 Monkey 的, Monkey 在運行時,會根據命令行參數的配置,生成偽隨機的事件流,並在 Android 設備上執行對應的測試事件。同時, Monkey 還會對測試系統進行監測,當出現以下幾種情況時會進行特殊處理:

以夜神模擬器為例:

1、檢查設備連接狀態

2、從上圖看出,設備未連接,連接移動設備

3、再次查看設備連接狀態

4、連接成功後輸入命令:adb shell

5、進入到指定目錄,命令:cd /system/bin

6、輸入 monkey命令看到如下提示則說明啟動成功

monkey 命令格式如下:

[options] 是指 monkey 可傳入的參數,是可選項(如果不指定options,Monkey將以無反饋模式啟動,並把事件任意發送到安裝在目標環境中的全部包)

<event-count> 是指隨機發送事件數。如:輸入100就是執行100個偽隨機事件,為必選項

測試工程師職業發展路線:
功能測試 — 介面測試 — 自動化測試 — 測試開發 — 測試架構師

內容就到這里,如果你對Python自動化軟體測試感興趣的話可以加入我們175317069扣裙一起學習。群里會有各項測試學習資源發放,更有行業深潛多年的技術人分析講解。

作為測試工程師,不斷提升自己工作能力是提高薪資待遇最重要的基礎。另外也要注重學習, IT 行業是個不斷發展、更新迭代相對較快的行業,技術具有明顯的時代特徵,所以緊跟時代技術的發展才能讓自己不掉隊,在職場當中具有足夠的競爭力。

閱讀全文

與monkey是什麼程序相關的資料

熱點內容
motoxt800刷機教程 瀏覽:591
有了中標文件單價該如何審計結算 瀏覽:57
港版蘋果616G多少錢最新報價 瀏覽:6
揭陽學編程哪個好 瀏覽:315
蘋果護眼壁紙 瀏覽:699
pcsx2按鍵配置文件 瀏覽:740
快賺鎖屏密碼忘了怎麼辦 瀏覽:849
後綴是acd是什麼文件 瀏覽:593
電腦無法打開視頻文件怎麼辦 瀏覽:904
如何簡化applewatch上的app 瀏覽:646
王者榮耀紫色字體代碼 瀏覽:186
surfacepro4系統版本 瀏覽:655
一加手機升級文件在哪個文件夾 瀏覽:537
u盤裝不了4g文件 瀏覽:740
豆神美育app怎麼退款 瀏覽:530
微信吃葯表情動態 瀏覽:425
網路廣播怎麼保存錄音 瀏覽:777
照片變漫畫ps教程 瀏覽:46
現在找不到王者cg文件 瀏覽:590
pdf文件怎麼編輯圖片要會員 瀏覽:303

友情鏈接