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 |
測試結果: |
當偽事件執行完畢後,且無錯誤時,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,大家可以根據需要去學習。