1. 程式人生 > >Appium+python自動化(十七)- 你難道是猴哥失散多年的混血弟弟還是妹妹???(超詳解)

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

簡介

  今天由巨集哥給小夥伴們來介紹猴哥的混血弟弟=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事件!!!

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

個人公眾號

微信群

相關推薦

Appium+python自動化- 難道失散多年弟弟還是妹妹???

簡介   今天由巨集哥給小夥伴們來介紹猴哥的混血弟弟=Monkey。Monkey 是Android SDK提供的一個命令列工具, 可以簡單,方便地執行在任何版本的Android模擬器和實體裝置上。 Monkey會發送偽隨機的使用者事件流,適合對app做壓力測試。 中文名:猴子 英文名:Monk

Appium+python自動化- 元素定位祕籍助打通任督二脈 - 上卷

簡介   你有道靈光從天靈蓋噴出來你知道嗎,年紀輕輕就有一身橫練的筋骨,簡直百年一見的練武奇才啊,如果有一天讓你打通任督二脈,那還不飛龍上天啊。正所謂我不入地獄誰入地獄,警惡懲奸維護世界和平這個任務就交個你了,好嗎。這本如來神掌祕籍是無價之寶,我看與你有緣,收你十塊錢傳授給你吧。想必這段經典臺詞給為都可以的

Appium+python自動化- 元素定位祕籍助打通任督二脈 - 下卷

簡介   巨集哥看你骨骼驚奇,印堂發亮,必是練武之奇才! 按照上一篇的節目預告,這一篇還是繼續由巨集哥給小夥伴們分享元素定位,是不是按照上一篇的祕籍修煉,是不是感覺到頭頂蓋好像被掀開,內氣從頭上冒出去,頓時覺得整個身體都融化了,而且身輕如燕啊!而且控制不住手,想要動手操作一番呢?那還在等什麼呢,和

Appium+python自動化- Android UIAutomator終極定位凶器()

簡介       乍眼一看,小夥伴們覺得這部分其實在異性兄弟那裡就做過介紹和分享了,其實不然,上次介紹和分享的大哥是uiautomatorviewer,是一款定位工具。今天介紹的是一個java庫,提供執行自動化測試的各種API。   Android團隊在4.1版本(API

Appium+python自動化- Android 這些基礎知識,知多少???

簡介   前邊具體操作和實戰已經講解和分享了很多了,但是一些android的一些基礎知識,你又知道多少了,你都掌握了嗎?這篇就由巨集哥給小夥伴們既是一個分享,又是對前邊的一次總結。為什麼要對這些做一個簡單的分享了,因為在現實具體工作中經常會遇到這樣的問題,這裡還是通過一個小故事來說明一下。  

Appium+python自動化- 難道失散多年弟弟還是妹妹???- Monkey事件

操作事件簡介   Monkey所執行的隨機事件流中包含11大事件,分別是觸控事件、手勢事件、二指縮放事件、軌跡事件、螢幕旋轉事件、基本導航事件、主要導航事件、系統按鍵事件、啟動Activity事件、鍵盤事件、其他型別事件。Monkey通過這11大事件來模擬使用者的常規操作,對手機App進行穩定性測試。下面讓

Appium+python自動化- 讓猴子按指令大鬧手機,讓我們都成為耍高手

簡介    一年一度的暑假如期而至,每年必不可少的,便是《西遊記》這部經典電視連續劇的播出,作為一名90後,對於這部經典劇的情誼,就是觀看已成為一種習慣。依然深刻的記得,小時候媽媽為了催促我睡覺,而關掉我的《西遊記》,那種哀求不成繼而絕望的感覺,至今記憶猶新。長大後只要得空在家,哪怕手裡做著其他的事

Appium+python自動化- 元芳,怎麼看? - 日誌收集-logging

簡介 生活中的日誌是記錄你生活的點點滴滴,讓它把你內心的世界表露出來,更好的詮釋自己的內心世界,而電腦裡的日誌是有價值的資訊寶庫。 日誌檔案是專門用於記錄系統操作事件的記錄檔案或檔案集合,作業系統有作業系統日誌檔案,資料庫系統有資料庫系統日誌檔案,等等。 系統日誌檔案是包含關於系統訊息的檔案,包括核心、

Appium+python自動化- 士兵突擊許三多 - 多個appium服務啟動,多個裝置啟動,多程序併發啟動裝置-併發測試 - 下

簡介  接著上一篇繼續看一下如何併發測試以及併發測試的過程中,可能遇到的問題,在這裡巨集哥把巨集哥遇到的和小夥伴或者童鞋們,一起分享一下。 Appium埠檢測 問題思考 經過前面學習,我們已經能夠使用python啟動appium服務,但是啟動Appium服務之前必須保證對應的埠沒有被佔用,否

Appium+python自動化 - Appium自動化測試框架綜合實踐 - 框架簡介-助衝擊高薪,迎娶白富美

簡介 好久沒有更新部落格了,博友們是不是有點等不及了。不好意思啊,中秋節過後太忙了,這篇是好不容易抽點零碎時間寫的。從這一篇開始小夥伴或者童鞋們,就跟隨巨集哥的腳步,一步步的從無到有,從0到1的搭建一個完整的python+appium自動化測試框架。 框架背景 前面我們已經學習了Appium各種元素定位

Appium+python自動化- 初識琵琶女Appium千呼萬喚始出來,猶抱琵琶半遮面

簡介    “千呼萬喚始出來,猶抱琵琶半遮面”,經過前邊的各項準備工作,終於才把appium這位琵琶女請出來。那麼下邊就由巨集哥給各位看官、小夥伴們和童鞋們來引薦這位美女(帥哥)。這一篇主要是對前邊的內容做一個小小的總結,我們不能只顧得埋頭拉車,不記得擡頭看路可不行哦!

Appium+python自動化- ADB命令,知否知否,應是必知必會

簡介   Android 除錯橋(adb)是多種用途的工具,該工具可以幫助你你管理裝置或模擬器 的狀態。   adb ( Android Debug Bridge)是一個通用命令列工具,其允許您與模擬器例項或連線的 Android 裝置進行通訊。它可為各種裝置操作提供便利,如安裝和除錯應用。

Appium+python自動化- 失散多年弟弟還是妹妹- Monkey猴子引數

 簡介   前邊幾篇介紹了Monkey以及Monkey的事件,今天就給小夥伴們介紹和分享一下Monkey的引數。   首先我們看一下這幅圖來大致瞭解一下: 1、Monkey 命令 基本引數介紹 -p <允許的包名列表>    &nbs

Appium+python自動化- 失散多年弟弟還是妹妹- Monkey猴子日誌

簡介    日誌是非常重要的,用於記錄系統、軟體操作事件的記錄檔案或檔案集合,可分為事件日誌和訊息日誌。具有處理歷史資料、診斷問題的追蹤以及理解系統、軟體的活動等重要作用,在開發或者測試軟系統過程中出現了問題,我們首先想到的就是她——logging。她可不像泰戈爾說的:&l

Appium+python自動化- 三個臭皮匠頂個諸葛亮-控制元件座標獲取

簡介   有些小夥伴或者是童鞋可能會好奇會問上一篇中的那個monkey腳本里的座標點是如何獲取的,不是自己隨便蒙的猜的,或者是自己用目光或者是尺子量出來的吧,答案當然是:NO。獲取控制元件座標點的方式這裡巨集哥給小夥伴們分享和講解三種方法(也就是三個臭皮匠),巨集哥個人喜歡第二種,也推薦小夥伴們和童鞋們使用

Appium+python自動化- 白素貞千年等一回許仙 - 元素等待

簡介     許仙小時候最喜歡吃又甜又軟的湯圓了,一次一顆湯圓落入西湖,被一條小白蛇銜走了。十幾年後,一位身著白衣、有青衣丫鬟相伴的美麗女子與許仙相識了,她叫白娘子。白娘子聰明又善良,兩個人很快走到了一起。靠著自己的力量,他們過上了幸福的生活。一天,僧人法海找到許仙,警告說白娘子是一條修行千年的蛇精,許仙不

Appium+python自動化- 那些讓人抓耳撓腮、揪頭髮和掉頭髮的事 - 獲取控制元件ID

簡介   在前邊的第二十二篇文章裡,已經分享了通過獲取控制元件的座標點來獲取點選事件的所需要的點選位置,那麼還有沒有其他方法來獲取控制元件點選事件所需要的點選位置呢?答案是:Yes!因為在不同的大小螢幕的手機上獲取控制元件的座標點,不是一樣的,而是有變化的,因此在不同的手機機型上,我們可能都需要重新獲取座

Appium+python自動化- 滑呀滑,滑到奈何橋喝碗孟婆湯 - 高階滑動

簡介     奈何橋上嘆奈何,三生石前憾三生,彼岸花下非彼岸,奈何三生彼岸人。   相傳過了鬼門關便上一條路叫黃泉路,路上盛開著只見花,不見葉的彼岸花。花葉生生兩不見,相念相惜永相失,路盡頭有一條河叫忘川河,河上有一座橋叫奈何橋。走過奈何橋有一個土臺叫望鄉臺。望鄉臺邊有個亭子叫孟婆亭,有個叫孟婆的女人守候

Appium+python自動化- 模擬手指在手機上多線多點作戰 - 多點觸控

簡介 在網頁中我們經常使用縮放操作來便利的檢視具體的資訊,在appium中使用MultiAction多點觸控的類來實現。MultiAction是多點觸控的類,可以模擬使用者多點操作。主要包含載入add()和執行perform()兩個方法. 問題思考 在使用地圖App中,我們經常需要對介面進行縮放操作來更

Appium+python自動化- 實現程式碼與資料分離 - 資料配置-yaml

簡介 本篇文章主要介紹了python中yaml配置檔案模組的使用讓其完成資料和程式碼的分離,巨集哥覺得挺不錯的,於是就義無反顧地分享給大家,也給大家做個參考。一起跟隨巨集哥過來看看吧。 思考問題 前面我們配置Capability時,各個引數都是在程式碼裡面寫死的,比如:desired_caps['pla