1、截包工具
在移動應用測試上,截包是一個必備的技能。凡是跟網絡請求有關的測試,基本上都須要使用到截包工具截包進行分析。好比第一期春哥專欄說到的下載劫持問題(http://bbs.uc.cn/thread-5160544-1-1.html),就是經過截包分析來確認的。
對PC軟件比較瞭解的同窗都知道,PC端有一個鼎鼎大名的截包軟件叫Wireshark。那麼在Android端是否也有這個軟件呢?很遺憾,暫時沒見到有人將這個軟件移植到Android端。可是咱們知道,Wireshark實際上是封裝了tcpdump來實現截包的。由於Android底層是linux,因而有人將linux上的tcpdump移植到了Android平臺上(http://www.androidtcpdump.com/)。這也是咱們內部的測試工程師經常使用的截包工具之一。不過它是一個在adb shell命令行下才能使用的工具,因此並不適合普通用戶使用。這裏給你們介紹一個騰訊測試工具組開發的軟件測試包——GT(http://gt.tencent.com/),它底層集成了tcpdump,用戶能夠經過GUI操做來實現截包。
使用GT截包的方法很簡單,打開程序,點擊下邊欄最右的「插件」-「抓包」打開截包界面。而後點擊「開始」。由於須要ROOT權限才能使用tcpdump截包,因此此時會彈出權限申請,給予ROOT權限後就開始截包了。正常截包,能夠看到下面Got的數字是會不斷變大的。若是Got一直爲0,則說明未獲取到ROOT權限,或出現異常。開始正常截包後,home鍵將GT切到後臺,打開被測程序,進行問題復現。當問題被複現後,回到GT,點擊結束,則可生成pcap格式的網絡日誌包(截圖演示如後)。這個包保存在/sdcard/GT/tcpdump/Capture目錄下。給咱們反饋一些網絡劫持或白屏等與網絡有關的問題,可使用此方法,把網絡日誌包附上,方便咱們分析。html
若是你們想看一下這個網絡日誌包的內容,要怎樣操做呢?能夠把這個pcap文件拷貝到電腦上,下載並安裝wireshark軟件(https://www.wireshark.org/),而後雙擊就能夠打開這個pcap文件了。至於如何分析網絡日誌,不一樣的問題採用的分析方法和過濾規則不同,因爲篇幅有限,就不在這裏展開說了。到網上搜索,有不少教程。
2、電量監控軟件
在咱們內部,作電量測試,是有專業的電量測試儀的。但那傢伙太貴了,要上萬塊錢。並且異常的耗電是跟場景密切相關,重點在於找到異常消耗的路徑 ,而不在於儀器的價格。而在監測異常耗電場景方面,軟件比儀器好使。如下這幾款我用的電量檢測應用和方法,部分是論壇友友推薦給個人,在此感謝一下,並分享給你們。
有些性能相關的問題,可能最終會在使用上表現出來。好比耗電問題,最終表現出來的現象多是手機發燙嚴重和手機須要頻繁充電。但有時,人的感受是不許的,並且每一個人的感受都不同。因此你們給我反饋「感受新版本更耗電了」「使用一會就很燙」「UC耗的電比屏幕顯示還多」等問題時,咱們難以判斷這究竟是不是UC的bug,更難判斷是否是新版UC的bug。若是你們在報告問題的同時,能附上耗電狀況截圖和使用場景(好比作了些什麼操做,大概用了多長時間等),咱們就能更快地判斷和驗證問題。
方法1 查看系統耗電排行榜
這個應該是最簡單的一個方法。可是不一樣的手機ROM,耗電詳情顯示的內容會有不一樣,算法也不徹底同樣。在我測試過的手機中,Nexus系列手機原生的Android系統的耗電顯示應該是最爲客觀和詳細的。通常來講,應用的高耗電主要體如今幾個地方:一、CPU佔用;二、寫磁盤和網絡鏈接;三、阻止系統休眠;四、GPS。因此出現異常耗電的時候,能夠看一下耗電詳情裏哪一個地方有異常。常見的異常有保持喚醒時間過長,後臺佔用CPU時間過長和GPS佔用時間過長等。linux
方法2 使用LBE電池管理功能
LBE是一款安全軟件,但它也帶有電池管理模塊。雖然它的數據來源於系統的batterystats.bin,但和系統的耗電排行榜相比,會多帶一些額外的信息。好比以前有用戶就使用LBE的電池監控發現某個版本的UC有一直佔用着某個傳感器不釋放的問題。不過LBE只能看到是傳感器耗電,還不能準確肯定是哪一個傳感器耗電。android
方法3 使用3C toolbox pro
3C toolbox pro在下載了電池管理模塊,並給予了root權限後,具體有強大的電池管理功能,能夠看到具體哪一個進程、服務或傳感器耗電。這給跟進問題帶來了極大的便利。算法
方法4 使用BetterBatteryStats
BetterBatteryStats是一個強大的第三方電池管理應用,能夠看到開機後或拔掉電源後,手機電量使用的詳細狀況。例如查看Wakelocks分類,能夠看出哪些應用在系統喚醒上消耗了最多電量。shell
3、內存測試
可以查看手機內存佔用的應用有不少,但咱們發現,即便是同一時間測試,不一樣的內存管理應用看到的同一個軟件佔用的內存都有很大的差異。爲何呢?由於Android應用大部分都是運行在最上層(應用層),它的數據都自於系統接口。而使用的系統接口不一樣,獲取到的數據也不同。好比內存,咱們常常說的有獨立內存和共享內存,二者區別很大。
咱們平時在分析內存佔用或內存泄露問題時,通常會在adb下使用一些指令來獲取程序佔用內存的狀況。好比dump sysmeminfo或procrank都提供了詳細的信息。不過這兩個指令並非每一個手機都有提供。因此這裏介紹top和ps這兩指令給你們使用。top和ps是linux上經常使用的兩個查看進程和內存信息的指令。由於Android是基本linux開發而來的,因此這兩個指令在通常的Android系統上都得以保留。使用方法是:
一、安裝Android SDK(http://developer.android.com/sdk/index.html#Other);
二、將手機用USB線鏈接到電腦;
三、電腦運行上輸入「cmd」而後回車,調出命令行操做界面;
四、輸入「top」或「ps」就能夠看到手機上全部存活的進程的內存、CPU的佔用狀況。(爲了方便查看,咱們能夠在命令後加上管道再prep一下,好比「top |grep UC」就能夠只看帶有「UC」的進程。不過grep不是每一個系統都有的)瀏覽器
4、其它小工具
其它常見的測試工具還有卡頓測試、流量測試等,在這些測試上面也有不少工具,但咱們使用得比較少。好比卡頓測試,咱們能夠在代碼裏注入測試代碼進行測試;流量測試,咱們可使用wireshark代替換。若是有好用的第三方工具,但願達人和大牛們能來分享一下!
除了有針對性的測試工具,咱們在工做的過程當中還會使用到各類各樣的小工具。好比有友友會說上面的top和ps命令要鏈接到電腦才能使用,很麻煩。有沒有方便的方法呢?固然也是有的,手機端也有一些命令行工具。我本身比較喜歡的有「超級終端」這個工具。在上面可以完成電腦CMD上的全部操做。另外,有時應用出問題了,想從新安裝一下,正常來講須要「卸載-從新下載-從新安裝」,很麻煩。其它在「超級終端」下,使用「pm clear」命令清除一下就行了(使用方法:pm clear 程序包名)。以下是重置UC瀏覽器(重置應用須要root權限,因此要先執行su,再執行pm clear):安全
咱們平時測試工做過程當中,使用過的小工具還有不少不少,但我一時又想不起哪些是對你們有用的,或者你們跟貼提問吧,你們再溝通溝通。不過最但願的仍是你們一塊兒跟貼分享。網絡