APP測試技術:ADB——安卓手機測試一座神奇的“橋”
前言:
近年移動網際網路好比IT界的一條浩瀚銀河,安卓手機測試可謂其中最璀璨的一顆明珠,這裡有一座你不得不熟悉的橋--ADB
曾見過不少相關的文章或培訓,不乏空談多,實戰少;期望大,效果差。也見過很多測試同仁,預成大牛,卻不得其法。今日我們秉承單點極致的精神。聚焦實用的技能,也思考下測試這條路,該如何走的深遠。 進入》
安卓測試,乃如今移動測試領域中舉足輕重的部分,相信也有不少同仁奮戰在這片戰場。工作中聽聞最多的幾個關鍵詞"效能","自動化","穩定性"……掌握這些測試技能,或可成為高階測試工程師。也達到很多同仁眼中的成功,至少是成就感。那麼這條路遠嘛?難嘛?我說,不遠,也不難,你和成功其實只隔一座橋--ADB。
ADB,或許很多人並不陌生,何謂ADB,簡言之:"adb的全稱為Android Debug Bridge"就是起到除錯橋的作用。最基本的安裝,環境變數配置,相信大家也能查到諸多資料,而一些入門級的介紹更是猶如滔滔江水,連綿不絕。相信如下幾個場景,或者命令大家都嘗試過:
-
安裝一個安卓APP: adb install
-
解除安裝一個安卓APP: adb uninstall
-
檢視裝置連線: adb devices
-
推送/拉去一個檔案: adb push/pull
-
重啟手機: adb reboot
入門級命令十多個,相信大家看到這裡很親切。不錯!這也是常考的一些筆試題。
但是問題來了,又有多少人,到此就淺嘗輒止了?!恐怕也是猶如黃河氾濫吧……
ADB 是一個非常實用的工具,尤其是對我們測試人員。什麼才是進階實踐呢?您是否基於 ADB 做過“效能測試”,“自動化測試”,“穩定性測試”?姑且讓我們從這三個場景看看這座橋(ADB)有多少神奇的潛力。
注:
-
以下截圖中程式碼,都來真實測試專案中的程式碼片段,必要地方我會加以解釋。
-
h 是 Java 封裝的一個類,主要作用是把 adb 命令傳送到控制檯執行。
很多高階語言都有相似方法,比如 php,或者 python
一、效能測試場景
安卓測試中,啟動速度,安裝包大小,記憶體佔用,CPU 佔用,耗電等是我們公認的重要效能指標。透過這座橋,這些都能實現。
例 1:測試 app 的啟動速度:
【專案實戰程式碼】:
【核心命令】:
【效果分析】:
其中的 ThisTime,和 TotalTime 就是我們關注的啟動時間,單位是毫秒。
知道這個,結合你已經掌握的安裝解除安裝命令,再加上任何一門高階程式語言的基本語法就可以完成貴公司 app 啟動速度專項測試。
提供思路如下(趕快動手試試吧):
-
設定安裝包路徑,如果有實力可以指令碼完成定期去 FTP 伺服器拉去最新可用安裝包。
-
安裝
-
啟動並記錄時間
-
解析結果併入資料庫。
-
完成分析資料,橫向對比,量化的把控啟動速度的變化趨勢。
例 2:獲取 app,安裝後大小:
【專案實戰程式碼】
【核心命令】:
【效果分析】
其中 system 後面就是大小(單位是 B)順便連安裝時間也有了^_^。
租後面無疑是包名字,想針對具體的應用來看,自然也是可以的。
很簡單,也很神奇。應用場景,你懂得。
例 3:記憶體的獲取:
【專案實戰程式碼】
【核心命令】:
【效果分析】
遠比你想想的要詳細,驚呆了,有木有。其中前兩項是我們要獲取的總記憶體,和剩餘記憶體,至於其他,按需獲取。
【核心命令】:
【效果分析】
不難看出吧 58753KB,就是清理大師當前的記憶體佔用。
至於您想獲取哪個應用,多久獲取一次?合適獲取。可以自己定義。總之記憶體這個常提到效能指標就透過一座“橋”實現了。
例 4:電量測試
【專案實戰程式碼】
【核心命令】:
【效果分析】
不難看出,很容易解析到,我們要的電量,電壓,溫度。除此之外,你甚至會發現,連充電方式,電池的健康程度,電池型別等都有。
想新到此,您已對 ADB 這座橋有了新的認知。
其實遠遠不僅如此。讓我們繼續領略一二。
二、功能自動化測試場景
一提到安卓安卓手機的自動化測試。恐怕就會想到,monkeyrunner,robotium,Athrun 等一系列的框架。其實根據專案的情況選擇合適的測試技術也是一項很有學問的事情。在此不展開討論。
說個具體場景。要檢驗清理大師的建議清理效果(該刪除的檔案被刪除)
核心步驟:
安裝,啟動,跳過協議頁,規避彈窗: adb install(安裝) adb shell am start(啟動) adb shell input keyevent 4(點選 back 鍵)
進入垃圾清理,等待掃描完成,點選清理 adb shell input tap X Y(點選某點,橫座標 X,縱坐 Y 標)
檢查手機檔案系統,完成效果比對。
這無疑是一個典型的自動化測試場景。 核心的 ADB 命令如上,大家可以小試牛刀。
三、基本穩定性測試場景
提到穩定性,大家第一時間想到,monkey。不錯,確實有一條命令:
adb shell monkey –n XX (包名) 1000(偽隨機時事件數)
這無疑算是一種穩定性測試方法,但是常用的同學也不難發現它的缺點!
>隨機性強,不容易復現。
>盲目性大,很容易點到別的應用。
>可控性差,執行很久未必重點測試預期的模組。
今天我們有這樣一個測試場景,測試手機主要的模組,能正正常進入,並且沒有崩潰。
核心點有三個:
驅動手機進入指定模組;
ADB 的座標點選,你懂得,就不贅述
獲取當前系統最上層的 ActivITy 名稱。
【專案實戰程式碼】
【核心命令】:
【效果分析】
結果比實際最上層 ActivITy 名稱,和預期比較,判斷穩定性,記錄結果。
字串比較,留給大家自己發揮。
至此,我們多少重新認識了下,似曾相識的 ADB。其實安卓測試,認真的走過這座“橋”漠然回首的時候,你會發現,自己經找到晉身高階測試工程師的門路了。當然由於時間和字數的限制。今日只能帶大家走馬觀花的領略下,這座神器的“橋”。工作中如果有疑難的測試場景,不妨想起 ADB,或許一些問題就迎刃而解,修行在個人,希望大家一起更上一層樓。
最後再次如何在測試這條路上走的更深,更遠。雖說命題有些寬泛,但是有些方法論可以參考
>在某個領域鑽的夠深,你就是專家。
>簡單的事情做出新意,你就是大牛。
>茫然的領域探出條道路,你就是領袖。
和大家共勉。
最後:
可以到我的個人V:atstudy-js,可以免費領取一份10G軟體測試工程師面試寶典文件資料。以及相對應的影片學習教程免費分享!其中包括了有基礎知識、Linux必備、Mysql資料庫、抓包工具、介面測試工具、測試進階-Python程式設計、Web自動化測試、APP自動化測試、介面自動化測試、測試高階持續整合、測試架構開發測試框架、效能測試等。
這些測試資料,對於做【軟體測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2928769/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- web測試與手機app測試的異同WebAPP
- 手機app測試講座APP
- 手機APP測試之ADB常見問題解決方法APP
- MTK平臺安卓手機效能測試方法安卓
- 軟體測試技術-黑盒測試
- 安卓手機ping命令怎麼用?安卓手機測試方法介紹安卓
- 面向開發的測試技術(二):效能測試
- Laravel 測試技術Laravel
- 通用測試技術
- 大資料測試技術——課堂測試大資料
- 測試通用技術3
- Appium自動化測試之常用的adb命令APP
- App測試、Web測試和介面測試一般測試流程APPWeb
- app與手機其他軟體互動測試APP
- 安卓 unit 測試與 instrument 測試的程式碼共享安卓
- 測試者出的APP測試面試題APP面試題
- 測者的測試技術手冊:自動的自動化EvoSuite 自動生成JUnit的測試用例UI
- 優秀的功能測試也可以戰勝技術測試者
- 面向開發的測試技術(三):Web自動化測試Web
- android測試常用的adb命令以及進行Monkey測試Android
- 測試測試測試測試測試測試
- 安卓下的串列埠測試安卓串列埠
- 安卓測試跟ios 測試有什麼區別?安卓iOS
- 軟體測試之資料庫測試技術系列七資料庫
- 測試漫談之:測試人員需要懂技術嗎?
- 【自動化測試】移動端測試輔助工具 - adb
- 關於安卓 sdk 測試安卓
- 基於敏捷測試的技術研究敏捷測試
- 軟體測試技術基礎學習之測試過程
- 想問問各位 app 測試 adb 命令相關的東西APP
- ios App測試iOSAPP
- APP測試設計測試用例的要點APP
- 軟體測試技術及工具
- 手機工廠測試是什麼?有著怎樣的測試流程?
- 學點新技術: 智慧穿戴外設——手環測試
- 解放雙手——你知道軟體測試階段都有哪些主流自動化測試技術嗎?
- 乾貨 | Dubbo 介面測試技術,測試開發進階必備
- 安卓單元測試 (十一):非同步程式碼怎麼測試安卓非同步