Appium+python自動化(十七)- 你難道是猴哥失散多年的混血弟弟還是妹妹???- Monkey簡介之開山篇(超詳解)


簡介

  今天由宏哥給小伙伴們來介紹猴哥的混血弟弟=Monkey。Monkey 是Android SDK提供的一個命令行工具, 可以簡單,方便地運行在任何版本的Android模擬器和實體設備上。 Monkey會發送偽隨機的用戶事件流,適合對app做壓力測試。

中文名:猴子

英文名:Monkey

出身年月:不詳

職業:自動化測試工具

常住地址:花果山水簾洞1號

1、Monkey簡介

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

Android官方對這只“猴子”的描述是這樣的:

  The Monkey is a program that runs on your emulator or device and generates pseudo-random streams of user events such as clicks, touches, or gestures, as well as a number of system-level events. You can use the Monkey to stress-test applications that you are developing, in a random yet repeatable manner.

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

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

2、環境搭建

  安裝Android SDK 並配置環境變量

3、什么是Monkey

  顧名思義,Monkey就是猴子,  Monkey測試,就像一只猴子, 在電腦面前,亂敲鍵盤在測試。  猴子什么都不懂, 只知道亂敲

  通過Monkey程序模擬用戶觸摸屏幕、滑動Trackball、 按鍵等操作來對設備上的程序進行壓力測試,檢測程序多久的時間會發生異常

4、Monkey 用來做什么

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

5、Monkey程序介紹

(1) Monkey程序由Android系統自帶,使用Java詫言寫成,在Android文件系統中的存放路徑是: /system/framework/monkey.jar;   
(2) Monkey.jar程序是由一個名為“monkey”的Shell腳本來啟動執行,shell腳本在Android文件系統中 的存放路徑是:/system/bin/monkey;  
(3)Monkey 命令啟動方式:    
          a)可以通過PC機CMD窗口中執行: adb shell monkey {+命令參數}來進行Monkey測試          

b)在PC上adb shell 進入Android系統,通過執行 monkey {+命令參數} 來進行Monkey 測試          

c )  在Android機或者模擬器上直接執行monkey 命令,可以在Android機上安裝Android終端模擬器  

6、Monkey 架構

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

7、Monkey弱點

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

8、Moneky 路徑

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

  • 如限定了Monkey運行在特定包上,當監測到試圖轉到其他包的操作,將對其進行阻止。
  • 如應用程序崩潰或接收到任何失控異常,Monkey將記錄對應的錯誤日志,並根據命令行參數判斷是停止運行還是繼續運行。
  • 如果應用程序發生了程序無響應(application not responding)的錯誤,Monkey將記錄對應的錯誤日志,並根據命令行參數判斷是停止運行還是繼續運行。
  • 按照選定的不同級別的反饋信息,在Monkey中還可以看到其執行過程報告和生成的事件。

9、Monkey啟動步驟

1、檢查設備連接狀態(以夜神模擬器為例)

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

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

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

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

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

10、強制關閉monkey

1、adb shell ps 查看全部在運行的進程

2、查找出com.android.commands.monkey 進程PID

3、adb shell kill pid 殺掉monkey進程

11、monkey 命令

monkey命令格式如下:

$ adb shell monkey [options] <event-count>

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

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

12、小結

    好了,Monkey簡介暫且到這里,下一篇計划介紹分享Monkey事件!!!

您的肯定就是我進步的動力。如果你感覺還不錯,就請鼓勵一下吧!記得點波 推薦 哦!!!

個人公眾號

微信群


免責聲明!

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



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