數(shù)據(jù)分析在壓測中的應(yīng)用1

過去,數(shù)據(jù)分析和測試的關(guān)系好像大部是體現(xiàn)在測試報(bào)告的各種圖表——大部分人都不太關(guān)注的圖表。而今天想拿壓測中的兩個(gè)例子,說明下用數(shù)據(jù)分析的方法真的可以讓測試變得更好。

1、確定壓力測試模型

在壓力測試過程中,壓力測試模型讓我們的測試更有針對(duì)性。之前的一個(gè)做法是,我們會(huì)以目前線上的交易量為基礎(chǔ),推算一個(gè)未來某時(shí)間的交易量,得到一天的交易量,在折算在工作的8小時(shí)或其他幾個(gè)小時(shí)內(nèi)去處理,得到一個(gè)預(yù)期各交易類型的tps,計(jì)算出并發(fā)的用戶數(shù)。在設(shè)置并發(fā)、預(yù)熱、減少壓力的策略等等。這種測試方法下,我們可以得到這樣一個(gè)理論上的交易量-時(shí)間圖:

理論上交易量-時(shí)間圖

但很奇怪的是,我們明明有線上的數(shù)據(jù),為什么不直按照線上的數(shù)據(jù)放大幾倍為未來的交易量級(jí),直接進(jìn)行測試呢?

所以我們拿了線上的脫敏數(shù)據(jù),分析了一個(gè)月的交易數(shù)據(jù),把每天按分鐘劃分為1440時(shí)間點(diǎn),計(jì)算每個(gè)時(shí)間點(diǎn)交易量的平均值,這樣的到了1440個(gè)交易量的點(diǎn):

實(shí)際每分鐘交易訂單數(shù)

按照這個(gè)量的X倍的到每分鐘的交易量和計(jì)算分鐘的并發(fā)數(shù)進(jìn)行壓力測試。

另一個(gè)就是金額,以前通常的做法會(huì)選擇一定范圍內(nèi)的隨機(jī)金額。但是在交易類系統(tǒng)中,金額在風(fēng)控、費(fèi)率等計(jì)算中也是很重要的。所以我們分析了線上的一天的交易金額,得到每分鐘交易金額均值作為每分鐘內(nèi)交易金額的隨機(jī)的范圍:

每分鐘金額隨機(jī)范圍

我們可以看到真實(shí)場景下并非交易量大的時(shí)間,交易金額就一定大。采用這樣一個(gè)金額的差異化,比之前任何時(shí)間點(diǎn)都在一個(gè)范圍內(nèi)隨機(jī)差異或者是固定值要來得更貼近現(xiàn)實(shí)。

2 計(jì)算處理時(shí)間

在有比較好的測試模型后,進(jìn)行測試后。我們通常需要得到系統(tǒng)的處理時(shí)間。在沒有規(guī)范的日志情況下,數(shù)據(jù)庫里的記錄會(huì)是一個(gè)好的選擇。數(shù)據(jù)庫中一般都會(huì)記錄交易的創(chuàng)建時(shí)間、完成時(shí)間、更新時(shí)間等。借此,我們可以得到系統(tǒng)內(nèi)部處理等時(shí)間分布:

處理時(shí)間分布

計(jì)算一些我們關(guān)心的處理時(shí)間的值,例如:

平均值:HandlerTimeAVG: 1461.93 ,

最大值:HandlerTimeMAX: 86433.00 ,

最小值:HandlerTimeMIN: 0.00 ,

中位數(shù):HandlerTimeMEDIAN: 798.00 ,

標(biāo)準(zhǔn)差:HandlerTimeSTD: 4102.73

此時(shí)我們不難發(fā)現(xiàn)在時(shí)間點(diǎn)200左右,交易量是低的,而處理時(shí)間有幾個(gè)點(diǎn)卻很高。按正常時(shí)間點(diǎn)看,是在凌晨的2-4點(diǎn)。而此時(shí)正是幾個(gè)批處理任務(wù)的時(shí)間點(diǎn)。是否是批處理任務(wù)對(duì)交易有影響呢?

ok,通過這兩個(gè)小例子,用數(shù)據(jù)分析的方法,一個(gè)可以讓測試模型更接近真實(shí)環(huán)境,一個(gè)是發(fā)現(xiàn)可能的潛在問題。當(dāng)然,隨著業(yè)務(wù)的發(fā)展,有了更新的數(shù)據(jù)后,我們需要重新分析數(shù)據(jù)。重新分析的數(shù)據(jù)等節(jié)奏,可以按壓測的需求進(jìn)行,甚至集成到壓測步驟中。構(gòu)建一個(gè)自動(dòng)化壓測系統(tǒng)可以參考:《構(gòu)建自動(dòng)化性能測試系統(tǒng)的實(shí)踐》。另外,在一些推薦和風(fēng)控場景下,我們還可以對(duì)用戶的屬地信息、年齡信息進(jìn)行分析,構(gòu)建相應(yīng)信息的交易來看系統(tǒng)的行為。

【重要】更新數(shù)據(jù),進(jìn)行分析是極為重要的,它使我們的模型更接近未來幾個(gè)月的真實(shí)的環(huán)境,才可能提前發(fā)現(xiàn)潛在問題,及早應(yīng)對(duì)。


有不足之處,歡迎指正,共同學(xué)習(xí)。

多謝

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容