這是《落葉》文集里第?178?片落葉斥难,希望你能喜歡,不為別的帘饶,只為這份堅(jiān)持哑诊。
【背景】
有同學(xué)提問(wèn):請(qǐng)問(wèn)用什么工具可以測(cè)試 android 的APP 登錄功能(等類似功能)的響應(yīng)時(shí)間 ?
自己目前調(diào)研有:1.模擬器? 2相機(jī)及刻,根據(jù)幀來(lái)分割計(jì)算響應(yīng)時(shí)間? 3.appium 自動(dòng)測(cè)試工具 镀裤,編寫(xiě)腳本來(lái)監(jiān)控返回時(shí)間? 4. 安卓自帶 SDK 中的adb shell? screenrecord? 請(qǐng)問(wèn) 。
自己的思考點(diǎn)缴饭,響應(yīng)時(shí)間包括從界面發(fā)起請(qǐng)求到服務(wù)器完全返回內(nèi)容的時(shí)間暑劝,主要是想做一下APP性能方面的測(cè)試。
【你問(wèn)】
APP 頁(yè)面的響應(yīng)時(shí)間怎么測(cè)更準(zhǔn)確颗搂?
【我答】
首先铃岔,這位同學(xué)對(duì)于頁(yè)面響應(yīng)時(shí)間的理解沒(méi)錯(cuò),從用戶角度來(lái)說(shuō)峭火,APP 的性能毁习,即請(qǐng)求的響應(yīng)時(shí)間包括:
用戶界面發(fā)送請(qǐng)求的時(shí)間 + 網(wǎng)絡(luò)傳輸時(shí)間 + 服務(wù)端處理時(shí)間 (包括數(shù)據(jù)層的處理時(shí)間)+ 網(wǎng)絡(luò)傳輸時(shí)間 + 用戶端展示返回結(jié)果的時(shí)間,如下圖:
從概念上來(lái)說(shuō):響應(yīng)時(shí)間卖丸,就是指應(yīng)用系統(tǒng)從發(fā)出請(qǐng)求開(kāi)始到客戶端接收到所有數(shù)據(jù)所消耗的時(shí)間纺且。該定義強(qiáng)調(diào)的是所有數(shù)據(jù)都已經(jīng)被呈現(xiàn)在客戶端所花費(fèi)的時(shí)間。
我們?cè)賮?lái)看看這位同學(xué)思考的幾種手段:
1稍浆、模擬器载碌;
2、相機(jī)衅枫,根據(jù)幀來(lái)分割計(jì)算響應(yīng)時(shí)間嫁艇;
3、appium 自動(dòng)測(cè)試工具 弦撩,編寫(xiě)腳本來(lái)監(jiān)控返回時(shí)間步咪;
4、安卓自帶 SDK 中的 adb shell? screenrecord益楼;
這幾種手段其實(shí)都是想通過(guò) APP 頁(yè)面的實(shí)際交互來(lái)計(jì)算這個(gè)頁(yè)面的響應(yīng)時(shí)間猾漫。先不說(shuō)這幾種測(cè)試方法的準(zhǔn)確性如何,就說(shuō)用幾種方法如果發(fā)現(xiàn)某個(gè)頁(yè)面的響應(yīng)時(shí)間過(guò)長(zhǎng)感凤,那如何定位是哪個(gè)環(huán)節(jié)的處理性能比較差而導(dǎo)致的呢悯周?
從上圖我們不難看出,網(wǎng)絡(luò)傳輸時(shí)間我們可以忽略陪竿,無(wú)論是 Android 還是 iOS禽翼,在對(duì)返回結(jié)果的展示速度上影響也很小,所以,APP 頁(yè)面響應(yīng)時(shí)間的核心時(shí)間段是服務(wù)端的處理時(shí)間(業(yè)務(wù)層+數(shù)據(jù)層)闰挡,也就是服務(wù)端接口的響應(yīng)時(shí)間仇矾,這才是我們對(duì) APP 頁(yè)面的響應(yīng)時(shí)間,也就是 APP 的性能測(cè)試重點(diǎn)解总。
常用的服務(wù)端接口性能測(cè)試工具:LoadRunner(企業(yè)級(jí)贮匕,收費(fèi)的)和 JMeter(開(kāi)源的,免費(fèi)的)花枫。
我們?cè)诠ぷ髦杏玫闹饕?LoadRunner刻盐,主要是用來(lái)測(cè)主要接口的壓力測(cè)試,通過(guò)不同的虛擬用戶數(shù)劳翰,來(lái)找尋服務(wù)端的性能瓶頸敦锌。同時(shí),針對(duì)不同的場(chǎng)景佳簸,對(duì)一些接口做大用戶的并發(fā)測(cè)試乙墙,比如,在很短的時(shí)間內(nèi)生均,同時(shí)有多少用戶登錄等等听想。
LoadRunner 的性能測(cè)試結(jié)果報(bào)告里有一項(xiàng)專門(mén)統(tǒng)計(jì)分析接口響應(yīng)時(shí)間的,如下圖:
Transaction Summary 圖:
1马胧、第一行數(shù)據(jù)是統(tǒng)計(jì)場(chǎng)景運(yùn)行時(shí)所有事務(wù)通過(guò)汉买、失敗和停止的數(shù)量;
2佩脊、表格里:具體每個(gè)事務(wù)的詳細(xì)信息蛙粘;
(1) Transaction Name,事務(wù)名
(2) Minimum威彰,事務(wù)運(yùn)行的最短時(shí)間
(3) Average出牧,事務(wù)運(yùn)行的平均時(shí)間
(4) Maximum,事務(wù)運(yùn)行的最長(zhǎng)時(shí)間
(5) Std.Deviation歇盼,標(biāo)準(zhǔn)方差舔痕。從數(shù)學(xué)角度來(lái)看,方差值越大旺遮,說(shuō)明這組數(shù)據(jù)波動(dòng)性越強(qiáng)赵讯,參考性越弱,反之參考性越強(qiáng)耿眉;
(6) 90 Percent,Controller 在運(yùn)行場(chǎng)景時(shí)鱼响,并不會(huì)顯示這個(gè)值鸣剪,因?yàn)樗菍?duì)整個(gè)一系列數(shù)據(jù)統(tǒng)計(jì)的結(jié)果。表示一個(gè)事務(wù)在執(zhí)行過(guò)程中90%所花費(fèi)的時(shí)間,例如:一個(gè)事務(wù)執(zhí)行了100次筐骇,對(duì)這100次事務(wù)響應(yīng)時(shí)間進(jìn)行升序排序债鸡,第90%即第90次事務(wù)運(yùn)行時(shí)間;
(7) Pass铛纬,通過(guò)的事務(wù)個(gè)數(shù)厌均;
(8) Fail,失敗的事務(wù)個(gè)數(shù)告唆;
(9) Stop棺弊,停止的事務(wù)個(gè)數(shù);
《測(cè)試路上你問(wèn)我答》里的?Q&A 36擒悬,如果是你要的模她,甚好!如果不是懂牧,你問(wèn)侈净,我答!
作者簡(jiǎn)介:14 年測(cè)試 + 11 年項(xiàng)目管理 + 11 年團(tuán)隊(duì)管理 = 一個(gè)測(cè)試?yán)媳?/p>