一、Android客戶端性能測(cè)試常見(jiàn)指標(biāo):
1、內(nèi)存
2、CPU
3、流量
4、電量
5、啟動(dòng)速度
6、滑動(dòng)速度、界面切換速度
7、與服務(wù)器交互的網(wǎng)絡(luò)速度
二、預(yù)期標(biāo)準(zhǔn)指定原則
1、分析競(jìng)爭(zhēng)對(duì)手的產(chǎn)品,所有指標(biāo)要強(qiáng)于競(jìng)品
2、產(chǎn)品經(jīng)理給出的預(yù)期性能指標(biāo)數(shù)據(jù)
3、符合業(yè)內(nèi)行業(yè)標(biāo)準(zhǔn)
三、測(cè)試方法及工具
1、內(nèi)存:使用adb shell腳本進(jìn)行測(cè)試,查看Log數(shù)據(jù)。adb shell dump meminfo
2、CPU:使用adb shell腳本進(jìn)行測(cè)試,查看Log數(shù)據(jù)。adb shell top
注意:程序持續(xù)運(yùn)行及操作過(guò)程中,內(nèi)存不能一直增加,不然系統(tǒng)會(huì)自動(dòng)kill掉該進(jìn)程。
3、流量監(jiān)控:可以借用網(wǎng)易的開(kāi)源工具:Emmagee
4、電量監(jiān)控:和競(jìng)品做對(duì)比測(cè)試,同一機(jī)型的測(cè)試機(jī)在不同時(shí)間,不同網(wǎng)絡(luò)條件,不同功能使用的情 ? ? ? 況下分別測(cè)試電量使用情況。
5、啟動(dòng)速度和滑動(dòng)、界面切換速度:編寫(xiě)測(cè)試代碼(Android Instrumentation),打樁到源碼中, ? ? ? 運(yùn)行后通過(guò)log數(shù)據(jù)進(jìn)行分析。
6、其他測(cè)試工具:騰訊開(kāi)發(fā)的工具:GT隨身調(diào)。下載地址:http://gt.qq.com/
不可置否,在對(duì)APP的整個(gè)測(cè)試環(huán)節(jié)中,性能測(cè)試是一個(gè)很重要的環(huán)節(jié),它直接影響了用戶的體驗(yàn),那么,對(duì)于APP的性能測(cè)試,我們到底需要關(guān)注那些點(diǎn)呢?
其實(shí),我們可以想想在軟件設(shè)計(jì)、部署、使用、維護(hù)中一共有哪些角色參與,然后再考慮這些角色各自關(guān)注的性能點(diǎn)是什么,那么作為一個(gè)軟件性能測(cè)試工程師,我們就能夠從中總結(jié)出,對(duì)于APP的性能測(cè)試主要應(yīng)該關(guān)注哪些比較重要的點(diǎn)。
一.從用戶角度出發(fā)
開(kāi)發(fā)軟件的目的是為了讓用戶使用,我們先站在用戶的角度分析一下,用戶需要關(guān)注哪些性能。
對(duì)于用戶來(lái)說(shuō),當(dāng)點(diǎn)擊一個(gè)按鈕、鏈接或發(fā)出一條指令開(kāi)始,到系統(tǒng)把結(jié)果已用戶感知的形式展現(xiàn)出來(lái)為止,這個(gè)過(guò)程所消耗的時(shí)間是用戶對(duì)這個(gè)軟件性能的直觀印象。也就是我們所說(shuō)的響應(yīng)時(shí)間,當(dāng)響應(yīng)時(shí)間較小時(shí),用戶體驗(yàn)是很好的,當(dāng)然用戶體驗(yàn)的響應(yīng)時(shí)間包括個(gè)人主觀因素和客觀響應(yīng)時(shí)間,在設(shè)計(jì)軟件時(shí),我們就需要考慮到如何更好地結(jié)合這兩部分達(dá)到用戶最佳的體驗(yàn)。如:用戶在大數(shù)據(jù)量查詢時(shí),我們可以將先提取出來(lái)的數(shù)據(jù)展示給用戶,在用戶看的過(guò)程中繼續(xù)進(jìn)行數(shù)據(jù)檢索,這時(shí)用戶并不知道我們后臺(tái)在做什么。
簡(jiǎn)單地說(shuō),用戶最關(guān)注的其實(shí)就是其操作的響應(yīng)時(shí)間。
二.站在管理員的角度考慮需要關(guān)注的性能點(diǎn)
(1)、 響應(yīng)時(shí)間
(2)、 服務(wù)器資源使況是否合理
(3)、 應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)資源使用是否合理
(4)、 系統(tǒng)能否實(shí)現(xiàn)擴(kuò)展
(5)、 系統(tǒng)最多支持多少用戶訪問(wèn)、系統(tǒng)最大業(yè)務(wù)處理量是多少
(6)、 系統(tǒng)性能可能存在的瓶頸在哪里
(7)、 更換那些設(shè)備可以提高性能
(8)、 系統(tǒng)能否支持7×24小時(shí)的業(yè)務(wù)訪問(wèn)
三.站在開(kāi)發(fā)(設(shè)計(jì))人員角度去考慮
(1)、 架構(gòu)設(shè)計(jì)是否合理
(2)、 數(shù)據(jù)庫(kù)設(shè)計(jì)是否合理
(3)、 代碼是否存在性能方面的問(wèn)題
(4)、 系統(tǒng)中是否有不合理的內(nèi)存使用方式
(5)、 系統(tǒng)中是否存在不合理的線程同步方式
(6)、 系統(tǒng)中是否存在不合理的資源競(jìng)爭(zhēng)
四.站在測(cè)試工程師角度考慮
那么從用戶、管理員、開(kāi)發(fā)者的角度去總結(jié)了其關(guān)注的性能指標(biāo)之后,筆者最終認(rèn)為,對(duì)于測(cè)試工程師來(lái)說(shuō),他們?cè)谧鲂阅軠y(cè)試的時(shí)候,主要應(yīng)該關(guān)注的測(cè)試指標(biāo)應(yīng)該是:
(1)連接超時(shí)
這個(gè)是App關(guān)閉的首要問(wèn)題,而在移動(dòng)應(yīng)用中網(wǎng)絡(luò)錯(cuò)誤數(shù)據(jù)比例報(bào)錯(cuò)中最高的就是連接超時(shí)錯(cuò)誤。想象一下當(dāng)花重金好不容易把你的App推廣到用戶手機(jī)上,而在用戶初次嘗試時(shí)發(fā)生連接超時(shí)無(wú)法正常使用,多數(shù)用戶會(huì)選擇再也不會(huì)打開(kāi)應(yīng)用第二次。
(2)崩潰
這個(gè)已無(wú)需多言。APP的崩潰,就是用戶的崩潰。當(dāng)用戶使用你的App出現(xiàn)閃退或崩潰時(shí),他們很有可能跑去App Store贈(zèng)送你一個(gè)“一星”差評(píng)。
(3)系統(tǒng)交互(電話短信干擾,低電量提醒,push提醒,usb數(shù)據(jù)線插拔提醒,充電提醒等)
在APP使用過(guò)程中,可能會(huì)遇到各種中斷場(chǎng)景,那么一旦發(fā)生這些場(chǎng)景,APP就卡死或者閃退,想必也沒(méi)有多少用戶愿意持續(xù)使用你的APP。
(4)弱網(wǎng)下的運(yùn)行情況
電梯里、地鐵上,網(wǎng)絡(luò)信號(hào)差時(shí),APP頁(yè)面的菊花轉(zhuǎn)不停,界面卡死,同時(shí)錯(cuò)誤提示一堆,這樣的情況怎能不讓用戶抓狂。
(5) CPU使用問(wèn)題
CPU頻率設(shè)置過(guò)高時(shí)會(huì)導(dǎo)致過(guò)熱,過(guò)熱導(dǎo)致耗電更嚴(yán)重,CPU頻率設(shè)置過(guò)低導(dǎo)致手機(jī)滯后,應(yīng)用處理緩慢同樣會(huì)導(dǎo)致耗電。更多時(shí)候,用戶解決CPU超載問(wèn)題只能關(guān)閉甚至卸載App,App就被Kill了!
那么針對(duì)以上所說(shuō)的幾個(gè)比較突出的APP測(cè)試點(diǎn),沒(méi)有開(kāi)發(fā)者希望用自測(cè)的方式去解決,耗時(shí)耗力不說(shuō),最終的效果也不敢完全保證,那么大多數(shù)人能夠想到的解決方法就是尋求自動(dòng)化測(cè)試工具的幫助,但是目前很多自動(dòng)化測(cè)試工具存在很多的局限性,一是大多自動(dòng)化測(cè)試工具不方便維護(hù);二是雖然很多自動(dòng)化測(cè)試工具很強(qiáng)大,但對(duì)代碼的能力要求很高,大大的增加了測(cè)試門(mén)檻;三是自動(dòng)化投入的成本較高,相對(duì)于目前APP開(kāi)發(fā)周期短的現(xiàn)狀來(lái)說(shuō),是很不劃算的。
轉(zhuǎn)載:https://tieba.baidu.com/p/4936910008