Android Monkey的使用

来源:http://www.cnblogs.com/zhaoyanjun/archive/2017/05/16/6861278.html
-Advertisement-
Play Games

轉載請標明出處:http://blog.csdn.net/zhaoyanjun6/article/details/71750907 本文出自 "【趙彥軍的博客】" 什麼是 Monkey Monkey 是一個 Android 自動化測試小工具。主要用於Android 的壓力測試, 主要目的就是為了測試 ...


轉載請標明出處:http://blog.csdn.net/zhaoyanjun6/article/details/71750907
本文出自【趙彥軍的博客】

什麼是 Monkey

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

Monkey 特點

顧名思義,Monkey就是猴子, Monkey測試,就像一隻猴子, 在電腦面前,亂敲鍵盤在測試。 猴子什麼都不懂, 只知道亂敲。通過Monkey程式模擬用戶觸摸屏幕、滑動Trackball、 按鍵等操作來對設備上的程式進行壓力測試,檢測程式多久的時間會發生異常。

Monkey程式介紹

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

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

Monkey 啟動方式:在 cmd 命令提示符裡面輸入命令行來啟動 monkey 測試。

Monkey 架構

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

這裡寫圖片描述

Monkey 參數大全

這裡寫圖片描述

Monkey 命令基本參數介紹

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

adb shell monkey 1000

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

  • 啟動一個包名的應用

QQ 的包名為: com.tencent.mobileqq

adb shell monkey -p com.tencent.mobileqq 1000

隨機操作 手機 QQ 1000 次

  • 啟動指定的多個 App

微信的包名為:com.tencent.mm

adb shell monkey -p com.tencent.mobileqq -p com.tencent.mm 1000

隨機操作 手機 QQ 和 微信 1000 次

3、-v : 操作日誌記錄

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

  • -v:Level 0(預設值)除 啟動提示、測試完成和最終結果之外,提供較少信息。
  • -v -v :Level 1提供較為詳細的測試信息,如逐個發送到Activity的 事件。
  • -v -v -v :Level 2提供更加詳細的設置信息,如測試中被選中的或未被選中的Activity。

adb shell monkey -p com.tencent.mobileqq -v -v -v 100

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

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

adb shell monkey -s 12345 -v 10

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

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

adb shell monkey --ignore-crashes -v 1000

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

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

adb shell monkey --ignore-timeouts -v 1000

7、--ignore-security-exceptions : 忽略程式發生許可異常

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

adb shell monkey --ignore-security-exceptions -v 1000

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

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

adb shell monkey --throttle 500 -v 500

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

9、--help : 列出簡單的用法

adb shell monkey -help

結果:

usage: monkey [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...]
              [-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...]
              [--ignore-crashes] [--ignore-timeouts]
              [--ignore-security-exceptions]
              [--monitor-native-crashes] [--ignore-native-crashes]
              [--kill-process-after-error] [--hprof]
              [--pct-touch PERCENT] [--pct-motion PERCENT]
              [--pct-trackball PERCENT] [--pct-syskeys PERCENT]
              [--pct-nav PERCENT] [--pct-majornav PERCENT]
              [--pct-appswitch PERCENT] [--pct-flip PERCENT]
              [--pct-anyevent PERCENT] [--pct-pinchzoom PERCENT]
              [--pkg-blacklist-file PACKAGE_BLACKLIST_FILE]
              [--pkg-whitelist-file PACKAGE_WHITELIST_FILE]
              [--wait-dbg] [--dbg-no-events]
              [--setup scriptfile] [-f scriptfile [-f scriptfile] ...]
              [--port port]
              [-s SEED] [-v [-v] ...]
              [--throttle MILLISEC] [--randomize-throttle]
              [--profile-wait MILLISEC]
              [--device-sleep-time MILLISEC]
              [--randomize-script]
              [--script-log]
              [--bugreport]
              [--periodic-bugreport]
              COUNT

Monkey 異常處理

1、調試設備找不到

error: no devices/emulators found

這裡寫圖片描述

解決方案: 打開開發者選項,打開 USB 調試


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前言:這是筆者學習之後自己的理解與整理。如果有錯誤或者疑問的地方,請大家指正,我會持續更新! 在觸發DOM上的某個事件時,會產生一個事件對象 event,這個對象中包含著所有與事件有關的信息。所有瀏覽器都支持 event 對象,但有相容性問題。 獲取事件對象 一般地,event 對象是事件程式的第一 ...
  • 一、http概述 超文本傳輸協議(HTTP,HyperText Transfer Protocol)是互聯網上應用最為廣泛的一種網路協議。所有的WWW文件都必須遵守這個標準。設計HTTP最初的目的是為了提供一種發佈和接收HTML頁面的方法。 HTTP是一個客戶端和伺服器端請求和應答的標準(TCP)。 ...
  • <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <style> *{ padding: 0; margin: 0; } ul{ overflow: hidden; background: skyblue; } l ...
  • BFC是Block Formatting Context的縮寫,直譯過來就是“塊級格式化上下文”。先不管它到底是什麼,看一個例子: 結果: 想必大家都瞭解,子元素float時父容器是不會被撐開高度的。一般的解決方法是給父容器加上 .clearFix類, 清除浮動後,父容器能自動獲得正確的高度了: 現 ...
  • 我是JS初學者,本想通過JS解決輪播圖的特效,上網看了下:大部分都是JQ解決的,對於初學者的我來說理解上有點困難。於是我自己只做了一個不那麼高大上的JS輪播圖,下麵我簡單介紹下我的步驟:在HTML中創建兩個按鈕控制項,其用來控製圖片的切換。再通過無序列表將你要輪播的圖片放入。最後放置一個你要將圖片展示 ...
  • 百度網盤地址:https://pan.baidu.com/s/1jI4xZgE 我給起的書名叫做《深入理解Android虛擬機記憶體管理》。本書分為兩個部分,前半部分主要是我對Linux0.11版內核的記憶體管理模塊的深入分析;後半部分主要是對Android虛擬機Dalvik的垃圾回收機制的分析和記憶體管 ...
  • Android 監聽 WiFi 開關狀態 轉載請標明出處:http://blog.csdn.net/zhaoyanjun6/article/details/70854309 本文出自 "【趙彥軍的博客】" WifiSwitch_Presenter 源碼: WifiSwitch_Interface 源 ...
  • 轉載請標明出處:http://blog.csdn.net/zhaoyanjun6/article/details/70854942 本文出自 "【趙彥軍的博客】" GPS_Presenter GPS_Interface 回調介面 在 Activity 中使用 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...