今天同事問到了android測試工具有點懵。因爲我一般不會去專業點的測試,我就用我肉嘟嘟的手指點啊點啊就完事了。既然人家問我我也不能丟了android人的面子,那麼來學習一下吧。
android自動化測試工具簡介
現在,已經有大量的Android自動化測試架構或工具可供我們使用,其中包括:Activity Instrumentation, DroidPilot,MonkeyRunner, Robotium, 以及Robolectric。另外LessPainful也提供服務來進行真實設備上的自動化測試。
Android自身提供了對instrumentation測試的基本支持,其中之一就是位於android.test包內的 ActivityInstrumentationTestCase2類,它擴展了JUnit的TestCase類來提供Android activities的功能測試。在應用測試中,每一個activity首先會被Instrumentation初始化,然後再加載到Android模擬 器或設備的Dalvik虛擬機中來執行。
一個新出android自動化測試工具,DroidPilot是一個自動化測試工具。它可以針對於Android平臺的應用程序進行測試腳本編輯、自動回放、結果檢 查、報告輸出等操作,以此來縮短迴歸測試的時間,提升項目整體進度。測試腳本不僅可以運行於模擬器,更可以同時運行於多臺移動設備,這樣更能凸顯測試結果 的真實性和可比性。
Android SDK自帶一個測試工具MonkeyRunner,它提供的API和執行環境可以運行Python語言編寫的測試代碼。它提供API來連接設備,安裝/卸 載應用,運行應用,截屏,比對圖片來判斷特定命令執行後的屏幕是否包含預期信息,以及運行對應用的測試。MonkeyRunner使用 ActivityInstrumentationTestCase2, ProviderTestCase,ServiceTestCasek, SingleLaunchActivityTestCase及其他類來定義測試用例,並使用InstrumentationTestRunner類來運行 測試。
Robotium是另一種通過InstrumentationTestRunner來完成Android交互式測試的架構,它橫跨多個 activities,支持功能測試,系統測試和接收測試。Robotium支持Activities、Dialogs、Toasts、Menus、 Context Menus甚至Honeycomb,並且它可以同Maven和Ant集成來完成持續集成測試。Robotium被稱之爲針對Android應用的又一個 Selenium。
Robolectric另闢蹊徑,它並不依賴於Android提供的測試功能,它使用了shadow objects並且運行測試於普通的工作站/服務器JVM,不像模擬器或設備需要dexing(Android dex編譯器將類文件編譯成Android設備上的Dalvik VM使用的格式),打包,部署和運行的過程,大大減少了測試執行的時間。Pivotal實驗室聲稱使用Robolectric可以在28秒內運行1047 個測試。
LessPainful將Android測試又推進了一步,它提供了一個多設備平臺自動化測試的服務。用戶上傳應用(*.apk)和用 Cucumber(一種業務相關的DSL)編寫的測試文件,選擇測試運行需要的設備配置,最後測試將自動執行並生成測試報告。它支持的設備包括 Garmin Asus,幾款HTC,LG,Samsung Galaxy,Sony Xperia和Motorola Motodefy。
Fps2d:
工具名稱:
|
fps2d性能測試工具
|
工具描述: |
fps2d主要針對android系統系統對2D圖形處理性能的測試 |
測試方法: |
將該軟件下載到所要測試的android系統上,雙擊該程序。待程序運行完畢後,記錄本次測試的成績 |
測試結果: |
測試結果有avg、stdev兩個參數值,其中,avg是每秒幀數的平均值,stdev是標準偏差值,avg的值正常值是(58-60),另測試最後,系統會給出測試時迭代的次數,iteration是迭代的次數 |
Linpack:
工具名稱:
|
Linpack性能測試工具
|
工具描述: |
Linpack用具測試計算機浮點計算性能 |
測試方法: |
將該軟件下載到所要測試的android系統上,雙擊該程序。進入程序主界面後,點擊running benchmark,開始測試 |
測試結果: |
測試結果中有四個參數:MFLOPS、time、norm res、precision MFLOPS每秒百萬次的浮點運算, norm res可以是標準參照, precision 是軟件版本信息 一般MFLOPS值越高越好,採用此工具測量時需要多次測試,求下平均值 |
Benchmark:
工具名稱: |
Benchmark |
工具描述: |
Benchmark可以測試系統中的多項性能,包括2D、cpu、內存和文件系統,且速度較快 |
測試方法: |
將該工具下載到系統上,雙擊該系統,進入程序主界面,用戶直接點擊running benchmark按鈕,將會測試工具默認的各項內容, |
測試結果: |
測試結果中的各項內容結果: Graphic:total graphic score、draw opacity bitmap(繪製不透明的位圖萬像素/每秒)、draw transparent bitmap(繪製透明的位圖萬像素/每秒) Cpu cpu的總得分 Memory 內存總得分和複製內存的時間 Filesystem 中列出整個文件系統的得分,同是有創建/刪除100個文件所用的時間,向文件中讀/寫1M內容的速度 (及時編譯工具jit的開啓可以提高測試的成績。Sp13開啓也會影響到測試成績) |
Quadrant(象限)
工具名稱: |
Quadrant |
工具描述: |
Android系統的性能測試工具,針 對CPU、內存、I/O輸入輸出、2D及3D圖像的性能,提供了一鍵式的完整測試。也可以或是根據需要選擇其中某些測試項目單獨測試。 |
測試工具: |
在所要測試的系統上裝入該測試工具,雙擊該工具,進入軟件主界面,用戶可以選擇綜合性能測試,也可以選擇自定義性能測試 |
測試結果: |
測試覆蓋cpu、memory、IO、2D、3D五大部分。測試完成後,將會給出給個部分的測試數值,同時將正在測試的系統的平分和其他機器測試的結果分佈的直方圖。 |
Cts
工具名稱: |
Cts android兼容性測試工具 |
工具描述: |
測試在在android系統上開發的程序可以正常運行在手機設備上,即android應用程序的兼容性 |
測試方法: |
在android設備的shell環境下運行cts工具,進入cts環境內,ls –plan 命令將android的項目有八大項,如:CTS、Android、Signature(簽名安全)、AppSecurity(應用程序安全)、等。使用start –plan name運行其中一個項目,也可以通過start –-plan name –p packagename 運行該項目中的一個應用程序。 |
測試結果: |
測試結果在out/host/linux-x86/cts/android-cts/repository/results/目錄下,並以開始測試的時間命名文件夾下的testresult.xml文件中會記載測試項的測試結果。Testresult.xml文件中的summary項即記錄就是測試結果總結 |
Monkey測試工具
工具名稱: |
Mokey測試工具 |
工具描述: |
Mokey是android系統自帶測試工具,monkey測試工具是向用戶發送僞用戶事件流,對android系統進行壓力測試。測試軟件的穩定性和健壯性 |
測試方法: |
Monkey是android系統自帶的測試工具,需運行在其環境中的shell裏啓動該工具,可以使用adb.exe shell進入shell環境,直接使用monkey命令後跟參數即可進行android的壓力測試。Monkey的常用命令參數有: -p ALLOWED_PACKAGE 僞事件操作的程序範圍,當設定-p參數後,隨機僞事件將會在設定的應用程序中產生,當沒有設定該參數是,隨機僞事件將在Intent.CATEGORY_LAUNCHER或Intent.CATEGORY_MONKEY運行,可以指定多個應用程序 -v 增加反饋信息的級別,參數選擇有level0、level、level2 其他可以參照monkey參數含義 |
測試結果: |
當僞事件運行完畢後,且無錯誤時,shell上會提示monkey finish信息。 |
Speed test工具
工具名稱: |
Speed test測試工具 |
工具描述: |
Speed test工具主要測試設備的網絡速度。可單獨測試3G和無線網絡的上傳和下載的速度,通常測試需要多次測試取平均值。 |
測試方法: |
將工具導入設備中,同時開啓所要測試的網絡對象,單擊功能頁面speed test工具的圖標,進入工具的主頁面。 單擊“開始測試”按鈕,進入測試界面。測試完成後,工具會恢復到開始測試的界面。多次重複該測試步驟。 |
測試結果: |
在result菜單下可以看到之間的每次測試結果,每次的測試都以開始測試的時間爲標識符。求幾次測試的平均值。 |
SD卡速度測試
工具名稱: |
SD.card.speed.test |
工具描述: |
測試SD卡的讀取和寫入的速度,SD合格的標準: C=class C2不低於2M/S C4 不低於4M/s C6 不低於6M/s |
測試方法: |
將SD.card.speed.test工具導入設備中,一般情況下工具會自動檢測設備上的SD卡,如果沒有的SD卡的情況,設備會給出提示,如果檢測到SD卡後就開始測試。公司MID中一部本的內存掛載到了SDcard下(可能有8G),因此這個時候測試SD卡的讀取和寫入的速度並不準確,這種情況下可以卸載存儲一保證測試數據的準確性。 |
測試結果: |
可測試結果中給出了SD卡的讀取和寫入的速度。可以多次測試求平均值。 |
SD卡速度測試
工具名稱: |
Nand test |
工具描述: |
測試SD卡的讀取和寫入的速度,SD合格的標準: C=class C2不低於2M/S C4 不低於4M/s C6 不低於6M/s |
測試方法: |
將SD.card.speed.test工具導入設備中,一般情況下工具會自動檢測設備上的SD卡,如果沒有的SD卡的情況,設備會給出提示,如果檢測到SD卡後就開始測試。公司MID中一部本的內存掛載到了SDcard下(可能有8G),因此這個時候測試SD卡的讀取和寫入的速度並不準確,這種情況下可以卸載存儲一保證測試數據的準確性。 |
測試結果: |
可測試結果中給出了SD卡的讀取和寫入的速度。可以多次測試求平均值。 |
以上是前人總結的,我只是搬過來而已,要本人打算學習Monkey,大家可以根據需要去學習。