日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 基本测试工具的使用

發(fā)布時(shí)間:2025/3/8 Android 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 基本测试工具的使用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Android 基本測試工具的使用和無線學(xué)習(xí)介紹

1,日志查看工具

1)DDMS

Android測試中,使用最多的日志查看工具就是DDMS了。

ddms可以從兩個(gè)地方打開,1,Eclipse的的ddms插件(屬于Eclipse 的SDK插件),2在Android SDK安裝目錄下的tools文件夾下面。

DDMS功能非常齊全,不僅僅可以查看日志,還可以截圖,打開文件目錄,終止進(jìn)程等等功能,這里先直說查看日志

看日志就靠這一塊了。

日志的過濾等級

Error :error為最嚴(yán)重的錯(cuò)誤,如果是拋到虛擬機(jī)的系統(tǒng)錯(cuò)誤,就可能引起客戶端崩潰,比如最為常見的空指針異常。

Warning :警告,一般嚴(yán)重,比如網(wǎng)絡(luò)異常什么,一般不會有crash,但需要引起注意,過濾warning異常的時(shí)候,會同時(shí)過濾出error錯(cuò)誤。

Info :信息,也就是一些系統(tǒng)的信息,比如頁面切換時(shí)間,手機(jī)信號量等等、過濾info信息同時(shí)會過來出warning和error信息

Debug debug信息,系統(tǒng)的一些debug信息,包括所有error,warning和info。

Verbose:詳情,包括所有error warning info和debug,還有其他的一些詳情

Assert:斷言,沒見過,可能跟單元測試有關(guān)。


日志的顯示

一條日志分為7部分

1,level 等級,即上文說的error,warning等,有系統(tǒng)決定,開發(fā)打印的日志也可自行決定等級。

2,time時(shí)間,日志時(shí)間。

3,pid進(jìn)程ID

4,tid線程ID

5,application應(yīng)用,有時(shí)候會打印出所屬的應(yīng)用名稱,如com.taobao.taobao

6,tag標(biāo)簽,開發(fā)可以自行設(shè)定log的標(biāo)簽,便于過濾,

7,text文本,即日志內(nèi)容

DDMS的其他日志功能

日志清空,日志保存,日志過濾,日志暫停

日志過濾:

DDMS的詳細(xì)使用可以參考http://developer.android.com/tools/debugging/ddms.html

中文版

http://wiki.eoeandroid.com/Using_DDMS


2)Logcat命令

一般使用的不多,僅僅在ddms啟動不了,或者識別不了手機(jī)的時(shí)候才會使用。前提條件,安裝了Android SDK。

使用方法,直接在命令行下輸入adb logcat,如果日志非常多,強(qiáng)烈建議將文件重定向到文件里面。

或者先輸入adb shell ,再使用logcat命令,日志多的話,可以加管道操作進(jìn)行過濾,即logcat|grep XXXX。

具體使用和ddms差不多,不多由于日志很多,用這種方法常年看不過來。日志內(nèi)容和ddms一致

3)Wmock

如果不需要關(guān)注客戶端本地日志,只需要看客戶端應(yīng)用層的網(wǎng)絡(luò)請求的話。

可以之間用wmock來抓取網(wǎng)絡(luò)中的HTTP請求,具體見

http://m.taobaotest.com/wmock/

不在贅述。

4)Wireshark和tcpdump

如果遇到一些比較難以解決的bug,需要深入TCP請求甚至IP請求,就需要用tcpdump對客戶端的進(jìn)行抓包(如TCP的keepalive包),具體操作如下:

4_1,root手機(jī),手機(jī)需要root權(quán)限,否則無法使用tcpdump。

4_2,下載tcpdump的Android版本,用push命令將文件推到手機(jī)中。不建議推送到SD卡,會有權(quán)限問題,可以放到手機(jī)的data文件夾下,。

adb push [PCPATH][mobilPATH]

4_3,提升tcpdump的權(quán)限。用adb shell進(jìn)入android bash后,需要手機(jī)使用root權(quán)限,先提升權(quán)限,然后chmod777 tcpdump。

4_4,抓包,啟動你要測試的APP后,適當(dāng)?shù)臅r(shí)間就可以開始抓包可,在tcpdump當(dāng)前目錄下,直接使用tcpdump -p -vv -s 0 –w[pcapfilePath] 就可以實(shí)現(xiàn)抓包,使用ctrl + C停止。

4_5,導(dǎo)出.pcap文件。退出adb bash , 使用pull命令將.pcap文件導(dǎo)出到PC(adb pull[mobilPath] [PCPATH])

4_6,使用wireshark將日志文件打開,即可以看到所抓到的包了。

5)使用fiddler軟件抓取網(wǎng)絡(luò)請求,具體用法和wmock類似,只是fiddler使用自己的機(jī)器作為代理服務(wù)器,而wmock使用專用的代理服務(wù)器。


2,性能工具

1)monkey工具

Monkey可以運(yùn)行在模擬器或真實(shí)設(shè)備上,并產(chǎn)生一系列隨機(jī)的用戶事件(點(diǎn)擊、觸摸、手勢以及系統(tǒng)級別的事件)。

Monkey一般用來進(jìn)行壓力測試或穩(wěn)定性測試。

Monkey通過 adb shell monkey [options] 命令來啟動

常用的參數(shù)包括

–p [package name]:指定測試包,參數(shù)即為包名,如主客戶端就是com.taobao.taobao

–s [seed]:指定事件隨機(jī)參數(shù),參數(shù)即為隨機(jī)數(shù)的種子值。如果這個(gè)參數(shù)相同,理論上能夠復(fù)現(xiàn)所有事件。

- v[number] number:制定發(fā)送偽隨機(jī)事件的次數(shù)。注意,這個(gè)隨機(jī)事件并非一個(gè)時(shí)間點(diǎn)只發(fā)送一個(gè)隨機(jī)時(shí)間,有可能同時(shí)發(fā)送幾個(gè)事件。

--throttle [milliseconds]:每次發(fā)送事件的時(shí)間間隔,單位為毫秒,測試的時(shí)候常常設(shè)定為1000~500之間。如果不設(shè)置,點(diǎn)擊間隔會非常短。

下圖就是客戶端monkey的一些點(diǎn)擊日志,如果需要系統(tǒng)輸出的日志。請使用logcat命令收集,并進(jìn)行重定向。

具體參數(shù)情況,請查看幫助文檔http://developer.android.com/tools/help/monkey.html

缺點(diǎn):遍歷深度優(yōu)先,部分頁面(需要登錄的頁面無法遍歷到)



性能監(jiān)測工具

2_1,top工具

使用adb shell進(jìn)入Android bash下面,然后,和linux下的top一樣。

不懂的話,top –h。具體這里不在細(xì)說。

2_2,android的dumpsys命令

通過dumpsys命令也可以獲取手機(jī)中一些APK包的系統(tǒng)信息,可以直接通過cmd命令行,輸入adb shell dumpsys [options]就可以了

參數(shù)包括:

2_3,ddms的系統(tǒng)檢測

用ddms也可以用來檢測性能,通過選項(xiàng)device和進(jìn)程,就可以查到app的內(nèi)存消耗,堆棧消耗,CPU消耗,網(wǎng)絡(luò)消耗等等信息,以及控制模擬器(只有模擬器,真機(jī)不行)。

下圖為網(wǎng)絡(luò)消耗

下圖為內(nèi)存消耗

具體使用,還是看http://developer.android.com/tools/debugging/ddms.html


3,文件查看工具

1)手機(jī)軟件

各種手機(jī)助手,比如91手機(jī)助手,豌豆莢等等,都有很好的查看手機(jī)文件系統(tǒng)的工具。但是這些手機(jī)助手只能看SD卡里面的。只能應(yīng)付日常最基本的使用。

2)DDMS

能夠查看Android文件系統(tǒng)的大多數(shù)目錄,但部分沒有相關(guān)權(quán)限的目錄(貌似是所有用戶的讀權(quán)限),無法查看。啟動方法為,通過device->File Explorer,出現(xiàn)下圖頁面

優(yōu)點(diǎn)是ddms可以方便的導(dǎo)入導(dǎo)出數(shù)據(jù)到這些不需要root權(quán)限的目錄里面。使用方法:左上角的圖標(biāo),應(yīng)該都能看懂吧


3)Adb bash 查看

Adbbash其實(shí)可以看成一個(gè)閹割版的linux bash系統(tǒng),用adb shell進(jìn)入adb bash后其他操作與linux系統(tǒng)基本無差異,但部分命令會無法使用。如下圖,感覺一切都非常熟悉吧。

只要你的手機(jī)是root過的,OK,暢游手機(jī)的系統(tǒng)文件。


4)RE瀏覽器(rootexplorer)

一句話,神器,但前提是你的手機(jī)必須root。在手機(jī)上裝上RE后,很多操作就可以在手機(jī)上以可視化界面完成了,甚至可以增刪改系統(tǒng)文件。由于權(quán)限很高,務(wù)必小心操作。比如說,一些app內(nèi)部文件,可以直接通過RE瀏覽器來查看并修改,確定是文件的哪個(gè)值發(fā)生了錯(cuò)誤引起客戶端的bug。


最后,針對這一塊注釋一下一些常用的文件存放地址

自己安裝的APK存放地址:/data/app下,

淘寶客戶端臨時(shí)文件(緩存,如圖片等):/sdcard/taobao,這個(gè)各個(gè)客戶端不一樣,有沒有SD卡也有影響

APP的私有文件(即需要到系統(tǒng)中清除緩存的APP):/data/data/<packageName>下面

APP的ANR日志 :/data/anr 下面

系統(tǒng)預(yù)裝的APP:/system/app下面(注意,慎刪,誤刪掛了什么別怪我沒提醒)一般只有預(yù)裝包和我們測試的APP出現(xiàn)了沖突的時(shí)候,才回去刪除

Adb命令: /system/bin 下面

Android系統(tǒng)源代碼目錄 /system/framework 下面

系統(tǒng)配置文件:/etc 下面

4,打包及簽名

打包過程介紹(為了解決打包過程中的問題而介紹一下)

1,生成R文件,使用aapt.exe程序生成R.java文件,如果Eclipse打開了build AutoMatically,就會在打開工程的時(shí)候完成。

2,生成aidl文件,使用aidl.exe程序,把.aidl文件轉(zhuǎn)化為.java文件。這步如果打開Eclipse的build AutoMatically的功能的話,也會自動生成

3,將.java文件生成.class文件,使用javac將.Java變成.class。

4,將class文件打包生成class.dex文件,使用dx腳本,class文件打包生成class.dex文件

5,打包資源文件,包括所有的res,asserts, Androidmanifest.xml等等文件,使用aapt.exe文件打包

6,生成未簽名的APK安裝文件,使用apkbuild打包成未簽名的apk包

7,簽名,使用jarSigner.jar進(jìn)行簽名。

8,(優(yōu)化對齊)


這邊注意兩點(diǎn):

1,如果打包需要混淆,需要在第3和第4步之間將className進(jìn)行替換,達(dá)到混淆的效果。

2,用Eclipse run出來的包默認(rèn)保存在工程的bin目錄下面,這個(gè)包默認(rèn)使用的是debug的簽名,如果覆蓋安裝我們自己簽名的APK包,會造成簽名不一致的沖突。

打包工具:

ANT

Maven

5,自動化測試框架

Sword

6,內(nèi)存的查看

內(nèi)存的查看工具使用的是Eclipse 下面的mat插件

內(nèi)存文件查看的過程:

1,導(dǎo)出內(nèi)存文件

從ddms上面,選擇需要查看內(nèi)存的進(jìn)程,然后,把hprof文件dump下來,dump成功后,將生成一個(gè)命名為<app包名>.hprof的文件

2,hprof文件進(jìn)行轉(zhuǎn)換。

由于android的hprof文件mat文件無法打開,需要使用androidSDK的自帶工具進(jìn)行轉(zhuǎn)碼操作。

具體命令為hprof-conv [path] [path]

3,在mat中打開文件

出現(xiàn)上圖后,就可以根據(jù)內(nèi)存地址,找到泄漏的點(diǎn),或者客戶端內(nèi)非常消耗的內(nèi)存模塊了

7,其他常用工具

1,Host修改

在日常測試過程中,經(jīng)常需要修改手機(jī)的host,使其能夠訪問特定的機(jī)器。Android的host文件和linux系統(tǒng)一樣,處在/etc/hosts文件當(dāng)中。但文件需要root權(quán)限才能夠查看,且文件是只讀的,即使有root權(quán)限,你也無法覆蓋。目前的修改辦法是在手機(jī)上裝上RE瀏覽器,然后強(qiáng)制修改host文件,保存退出后生效。

2,強(qiáng)制Kill進(jìn)程

使用DDMS的進(jìn)程終止工具

選擇一個(gè)進(jìn)程(要求APP是debug包,否則找不到這個(gè)進(jìn)程),這個(gè)按鈕會變成紅色,點(diǎn)擊就可以kill進(jìn)程了。

3,內(nèi)存回收(GC)

強(qiáng)制回收內(nèi)存,還是靠DDMS,如下圖按鈕。

內(nèi)存“Cause GC”按鈕,強(qiáng)制觸發(fā)GC,之后就可以不用按了,他會自動觸發(fā)內(nèi)存的回收,如果隨著APP的使用dataObject持續(xù)出現(xiàn)變大的情況,說明APP有內(nèi)存泄漏的情況(現(xiàn)在的客戶端也會報(bào)警)。

如果需要導(dǎo)出需要通過ddms 將heap dump生成出來,用來分析

4,網(wǎng)絡(luò)延時(shí)和降低帶寬

網(wǎng)絡(luò)延時(shí)可以通過wmock來實(shí)現(xiàn),當(dāng)然,更加簡單的方法就是通過更換sim卡來實(shí)現(xiàn),用2G網(wǎng)絡(luò)就可以達(dá)到網(wǎng)絡(luò)延時(shí)提高和網(wǎng)絡(luò)帶寬的目的兩個(gè)目的。


5,APK打包解包命令

aapt 命令 :

aapt dump xmltree [apk path] AndroidManifest.xml 或者aapt dbadging 命令,可以檢查APK包中的信息


轉(zhuǎn)載于:https://blog.51cto.com/lilier/1335073

總結(jié)

以上是生活随笔為你收集整理的Android 基本测试工具的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。