很早就想寫寫近幾年的性能測(cè)試總結(jié),最近終于可以開動(dòng)了!
很多書和文章把性能測(cè)試寫的復(fù)雜,分為性能測(cè)試、壓力測(cè)試、負(fù)載測(cè)試、并發(fā)測(cè)試、可靠性測(cè)試……
其實(shí)與功能測(cè)試是一樣的,需要考慮需求、運(yùn)行條件、執(zhí)行步驟(腳本)、工具、結(jié)果分析
首先要從需求開始了解,目前接觸到的性能測(cè)試需求有以下4類
1)明確指標(biāo):要求系統(tǒng)滿足100個(gè)用戶同時(shí)登陸使用,平均每個(gè)用戶操作(登錄、訪問(wèn)首頁(yè))響應(yīng)不超過(guò)5秒(只要結(jié)果,不關(guān)心達(dá)不到指標(biāo)的解決方案)——指標(biāo)明確,但往往提不出這么明確的需求
2)想知道目前系統(tǒng)性能(摸底測(cè)試):摸底獲得系統(tǒng)的可以承受的最大用戶數(shù)——當(dāng)沒(méi)有明確性能需求時(shí)
3)找出系統(tǒng)瓶頸:系統(tǒng)根據(jù)性能測(cè)試結(jié)果分析造成瓶頸的邏輯業(yè)務(wù)、接口、函數(shù),進(jìn)行調(diào)優(yōu)——需要尋找到合適的場(chǎng)景,制定測(cè)試方案,多次執(zhí)行
4)壓力測(cè)試(穩(wěn)定性測(cè)試):需要測(cè)試較長(zhǎng)時(shí)間,系統(tǒng)長(zhǎng)時(shí)間處于壓力環(huán)境下,系統(tǒng)的穩(wěn)定性情況——一般是第三類調(diào)優(yōu)結(jié)束后
在性能測(cè)試需求中常遇到的是并發(fā)數(shù)和TPS、響應(yīng)時(shí)間
TPS:每秒事務(wù)數(shù)
響應(yīng)時(shí)間:從發(fā)送請(qǐng)求到接收到回復(fù)的時(shí)間,一般不包含網(wǎng)絡(luò)傳輸+界面渲染時(shí)間
并發(fā)數(shù):滿足某個(gè)條件(服務(wù)器沒(méi)有崩潰),可以同時(shí)使用的用戶數(shù)是最大并發(fā)數(shù),與最佳并發(fā)數(shù)比較容易混淆(很多系統(tǒng)都是需要測(cè)試最佳并發(fā)數(shù)),這兩個(gè)并發(fā)數(shù)導(dǎo)致測(cè)試的結(jié)束條件不一樣,所以一定要在明確需求時(shí)確認(rèn)清楚。
舉個(gè)例子:我們的12306網(wǎng)站在建設(shè)初期,當(dāng)遇到春運(yùn)搶票期間,如果同時(shí)在線人數(shù)達(dá)到一定數(shù)量,服務(wù)器就崩潰,大家都沒(méi)法使用,這就是達(dá)到了最大用戶數(shù);后來(lái)優(yōu)化后再搶票,當(dāng)同時(shí)搶票的人數(shù)到了一定數(shù)量(最佳用戶數(shù)),僅保障在線的用戶搶票,除非有人掉線,再想登錄的人讓你再等等,這樣服務(wù)器就不會(huì)崩潰了,往往這時(shí)我們就需要知道12306的最佳用戶數(shù)是多少,做到提前防護(hù)機(jī)制。
最大并發(fā)數(shù)和最佳并發(fā)數(shù)有個(gè)經(jīng)典的講解:理發(fā)店模式
總結(jié):性能測(cè)試是有前提條件的,根據(jù)這些條件來(lái)明確測(cè)試方案和工具
? 硬件環(huán)境:服務(wù)器配置(例如:4CPU8G、windows or linux)
? 軟件環(huán)境:協(xié)議。前后端架構(gòu),數(shù)據(jù)庫(kù)等服務(wù)器部署圖
? 網(wǎng)絡(luò)環(huán)境:特別時(shí)被測(cè)系統(tǒng)與測(cè)試施壓之間的網(wǎng)絡(luò)帶寬,性能測(cè)試一般在局域網(wǎng)內(nèi)進(jìn)行
?系統(tǒng)的壓力點(diǎn):哪個(gè)頁(yè)面或業(yè)務(wù)需要進(jìn)行性能測(cè)試(初步明確業(yè)務(wù),后續(xù)還可能會(huì)改)
?測(cè)試的指標(biāo):并發(fā)數(shù)、TPS、響應(yīng)時(shí)間(形成一個(gè)概念,經(jīng)過(guò)測(cè)試執(zhí)行會(huì)逐步明晰)