2015年9月8日 星期二

Android 自動化壓測工具-Monkey Test (實機篇)

哈囉,大家好!!!

今天我們就接著上一節繼續談談 Monkey Test 這個隨機壓測工具。

記得以前還沒有智慧型手機時,就已經有自動化壓測工具,用來測試手機的實體按鍵。這是利用一個小型機器手臂一直持續按壓手機上的實體按鍵,測試是否會因為持續性按壓手機鍵盤,進而造成系統當機或等等的錯誤產生。

手機產業慢慢地發展到智慧型手機時,自動化測試工具當然也會與時並進,而 Monkey Test 就是專為 Android 的手機系統孕育而生的「隨機壓測工具」。

而今天這一節就是介紹 Monkey Test 如何來測試 Android 手機或平板電腦,首先一樣看看這一節的圖解大鋼:

Step 1: 下載 ADB 程式 & USB 驅動程式
下載執行 Monkey Test 測試工具 adb.zip 或由下面官網連結下載:
http://adbshell.com/downloads

下載 ADB 的 USB 通用驅動程式 AdbDriverInstaller.exe 或由下面的官網連結下載:
http://adbshell.com/downloads



如果 USB 通用驅動程式無法驅動,請直接到各大手機品牌官網下載,或由下面的連結連到各品牌官網下載 USB 驅動程式:
http://developer.android.com/tools/extras/oem-usb.html

Step 2: 安裝 ADB 程式
安裝 ADB 測試環境:
請到 adb.zip 下載目錄,按右鍵「解壓縮全部(T)...」


更改 adb.zip 解壓縮目的地資料夾為「C:\adb」之後按「解壓縮」


開啟 Cmd 命令提示字元,在 C:\> 底下輸入「dir adb」驗證有無 adb.exe 執行程式

安裝 USB 通用驅動程式:
請到 AdbDriverInstaller.exe 下載目錄,按兩下開啟安裝工具


在 Adb Driver Installer 1.0 主程式視窗按下「Install」安裝驅動程式
(請確認安裝前已將 USB 傳輸線與電腦和手機兩邊都連接上)

如果手機或平板電腦 USB 驅動程式成功安裝時,畫面顯示如下圖,可按「Exit」離開
(如果 ADB 的 USB 通用驅動程式無法驅動時,請到各手機廠牌官網下載專屬 USB 驅動程式)

Step 3: ADB 環境設定
開啟 Cmd 命令提示字元,在 C:\adb> 底下輸入「adb devices」查詢裝置名稱或代碼,驗證測試裝置已經 Ready
(如下圖,手機已經用USB傳輸線連好,且驅動程式也安裝正確,所以才會列出裝置名稱代碼是 0A3BF9160800F00F)

Step 4: 執行 Monkey Test 測試
開始執行 Monkey Test 500個隨機壓測,指令如下:
adb -s 0A3BF9160800F00F shell monkey -v 500




執行 Monkey Test 測試時,手機的聯動畫面影片如下:

Step 5: 測試參數與結果分析
執行指令「adb -s 0A3BF9160800F00F shell monkey -v 500」參數分析如下:
「adb」透過 adb.exe 呼叫 Monkey Test 測試參數
「-s devices name」例如「-s 0A3BF9160800F00F」就是 -s 加上裝置名稱或代號
「shell monkey」呼叫 Monkey Test 測試程式
「-v events number」例如「-v 500」就是壓測 500 個隨機測試

下圖測試結果分析如下:
「Events injected: 500」這表示此次測試,成功注入500個測試活動
「elapsed time=10507ms」這表示測試時間
「// Monkey finished」這表示 500個隨機壓測,都有成功完成

Step 6: 補充說明
如果測試失敗時,會顯示的訊息說明如下:
「Events injected: 126」這表示在第126個隨機壓測失敗
「** System appears to have crashed at event 126 of 500 using seed 1439717291142」
這表示原本要注入500個隨機壓測,但是在注入第126個測試時失敗

相信經過這兩節的說明後,各位對於如何使用 Monkey Test 做隨機壓測,應該不會再感到陌生。

隨著科技日新月異,自動化測試的技術也會隨之進步,不管是從事系統業、還是軟體業,都有各個領域專屬的測試工具。每當我們沉浸在3C的便利性時,背後所使用到的技術,都不是簡單的三言兩語就可以說明清楚的,更何況模擬使用者的自動化測試,更是一門深不可測的領域。

有專業的資深IT經理人曾經跟我說過,在台灣「QA」就是測試這門領域,常常是不被重視的。反觀歐美的軟體測試工程師(QA)他們的專業素養,並不一定會輸給研發人員(RD),更何況是研發測試人員(Test Developer),有很多都是資深的RD和QA同時擁有雙方面領域的專業技術專家來當任。

這也再再說明了,台灣的科技業只求有,不求好的商業型態。不注重品質的產品,最後也只能走向被淘汰的一途,自然會被市場上更好的產品所取代的。

希望台灣的IT產業不要最終走向「泡沫」的這條不歸路。

~ See you ~

參考出處:
http://adbshell.com/downloads
http://developer.android.com/tools/extras/oem-usb.html

2015年8月31日 星期一

Android 自動化壓測工具-Monkey Test (模擬器篇)

大家好久不見~ !!!

話說怎麼最近文章產量這麼少?
其實不然,實在是真的太忙了,之前才剛忙完兩大專案的壓力測試沒多久,緊接著又有其他專案,突然諮詢我們一些關於資訊安全的問題,像是弱點掃描、源碼檢測等等。

幾乎什麼疑難雜症都來尋求我們解答或諮詢,還好本部門各個都是硬底子的「真金」不怕火煉,雖然都快成為名符其實的 Q&A 部門。^^

不過話說回來,之前的一個專案客戶有用一個測 Android Client 的壓測工具「Monkey Test」,這是 Android 原生指令介面的壓測工具。

其實不是很推這一套壓測工具,不是因為要用指令麻煩。而是因為它的測試腳本,完全是隨機沒有固定腳本的亂按。不過這也是有好處的,說不一定在不規則的測試中,可以不經意的測出 Test Case 沒涵蓋到的錯誤。

接下來就言歸正傳,談談我們今天的主角 —Monkey Test,以下是我們這一節的圖解大綱:

Step 1: 下載
請到下列官網下載 Android SDK Tools 或下面的超連結直接下載
https://developer.android.com/sdk/index.html
installer_r24.3.4-windows.exe


接著請到以下連結下載 JDK 6 以上的版本


Step 2: 安裝
在安裝 Android SDK Tools 之前,請先下載和安裝 JDK 6 以上的版本

JDK 6 安裝步驟
點兩下 jdk-8u60-windows-x64.exe 或 jdk-8u60-windows-i586.exe 開始安裝
(請依目前使用作業系統版本,選擇安裝)








最後,按一下 Close 完成安裝。
可以開啟控制台底下的「程式和功能」確認有無安裝成功。

Android SDK Tools 安裝步驟
按兩下 installer_r24.3.4-windows.exe 開始安裝









按下Finish完成安裝,並第一次開啟 Android SDK Tools

Step 3: 環境設定
將 Tools 和 Android 6.0 ~ 4.0.3 版本都打勾安裝




開啟 Android SDK Tools 的 AVD Manager 來增加一台 Android 虛擬機


從 Device Definitions 選擇所要的 Device Template 之後按 Create AVD

選好 CPU 和 Skin 之後按 OK


選取 Device 之後按 Start

請直接按 Launch 開啟模擬器



第一次啟動模擬器

Step 4: 使用方法
開啟 Cmd 執行指令到 C:\Users\使用者帳號\AppData\Local\Android\android-sdk\platform-tools 路徑下

執行指令 adb devices 找到 Device 名稱是 emulator-5554

開始執行 Monkey Test 測試指令
adb -s emulator-5554 shell monkey -v 500

測試過程中,模擬器的畫面會跟著測試而改變

測試完成後 cmd 視窗如下

Step 5: 測試分析
所下的測試指令和參數分析如下:
adb —用程式 adb.exe 呼叫 Monkey Test 做測試
-s emulator-5554 —指定測試模擬器名稱
shell monkey —呼叫 Monkey Test 程式
-v 500 —指定測試 500 個活動

由上圖的測試結果,可以看到總共注入 500 個活動測試,測試時間是 20664 ms,測試結果是 // Monkey finished 完成的

Step 6: 補充說明
如果需要指定測試某個 Package,需加的參數如下:
-p Package Name —例如 -p com.android.browser

Package 列表的指令:adb shell pm list package -f

如果 Monkey Test 測試錯誤,測試報告結果會如下圖:

下一節我們再來介紹 Monkey Test 是如何透過真正的手機做測試的。這一節就先介紹到這裡,我們下次見 ~掰掰!

~ See you ~

參考出處:
http://developer.android.com/
http://www.oracle.com/technetwork/java/javase/downloads/index.html