提到性能測試,常會提到壓力測試、負(fù)載測試、穩(wěn)定性測試、配置測試等等,但說到其各自的定義,實在是晦澀難懂。但若將性能測試,看作是在不同的場景下執(zhí)行系統(tǒng),獲取系統(tǒng)的性能指標(biāo),再對數(shù)據(jù)進(jìn)行監(jiān)控分析的過程,就比較好理解了。
性能測試場景可以分為四類。
- 基準(zhǔn)性能場景
- 容量性能場景
- 穩(wěn)定性性能場景
- 異常性能場景
下面說下每種場景的定義、場景設(shè)計以及一些補(bǔ)充。
基準(zhǔn)性能場景
對單個業(yè)務(wù)進(jìn)行加壓,以獲取其的最大容量
設(shè)計步驟
- 確定要測試的業(yè)務(wù)比例、業(yè)務(wù)目標(biāo)TPS、響應(yīng)時間指標(biāo)
這里要測試兩個接口,目標(biāo)響應(yīng)時間都是100ms
| 業(yè)務(wù)名 | 業(yè)務(wù)比例 | 業(yè)務(wù)目標(biāo)TPS |
|---|---|---|
| 業(yè)務(wù)A | 70% | 160 |
| 業(yè)務(wù)B | 30% | 100 |
-
對業(yè)務(wù)接口進(jìn)行梯度加壓,得到測試結(jié)果
以每3秒一個用戶的速度向上遞增,直到加到50個用戶
TPS
A-TPS.png
RT

線程

- 獲取最大TPS,以及此時的響應(yīng)時間
從上面的圖可以得到以下判斷:
- 壓力線程到14時,TPS達(dá)到上限180左右
- 此時的響應(yīng)時間是75左右
4.重復(fù)以上步驟測試每一個業(yè)務(wù),得到結(jié)果表格
| 業(yè)務(wù) | 最大TPS | RT |
|---|---|---|
| 業(yè)務(wù)A | 180 | 75 |
| 業(yè)務(wù)B | 155 | 70 |
Q&A
Q:業(yè)務(wù)目標(biāo)TPS和響應(yīng)時間怎么定?
A:方法一:找同行業(yè)對比數(shù)據(jù)。方法二:到生產(chǎn)環(huán)境看用戶使用情況并統(tǒng)計信息
Q:怎么得到業(yè)務(wù)比例?
A:根據(jù)生產(chǎn)環(huán)境的請求統(tǒng)計信息
Q:測試時為什么要逐步增壓?
A:保證在測試過程中資源分配的合理性,可以看到整體的變化過程,例如遞增過程中會不會出現(xiàn)系統(tǒng)動蕩,便于分析性能瓶頸。
容量性能場景
模擬生產(chǎn)環(huán)境的業(yè)務(wù)場景,比如峰值場景進(jìn)行的測試,判斷在混合業(yè)務(wù)場景下,系統(tǒng)的指標(biāo)是否符合預(yù)期
設(shè)計步驟
- 場景不斷
-
控制比例
業(yè)務(wù)A、B按照7:3的比例,不斷增加壓力,得到以下結(jié)果:
混合容量.png
| 業(yè)務(wù) | 最大TPS | 響應(yīng)時間 | 業(yè)務(wù)比例 | 目標(biāo)TPS | 容量測試結(jié)果TPS | 容量測試結(jié)果對應(yīng)的響應(yīng)時間 |
|---|---|---|---|---|---|---|
| 業(yè)務(wù)A | 180 | 75 | 70% | 160 | 115 | 116 |
| 業(yè)務(wù)B | 155 | 70 | 30% | 100 | 53 | 107 |
| 合計 | 168 |
混合場景下,業(yè)務(wù)的TPS并沒有達(dá)到預(yù)期,此處應(yīng)進(jìn)行分析調(diào)優(yōu)。
穩(wěn)定性性能場景
系統(tǒng)能在一定時間內(nèi)穩(wěn)定運(yùn)行
設(shè)計步驟
確定場景的運(yùn)行時間長度的加壓數(shù)
運(yùn)行時長取決于系統(tǒng)上線后的運(yùn)維周期。例如指標(biāo)是穩(wěn)定運(yùn)行一周,支持100萬業(yè)務(wù)量。之前容量TPS能達(dá)到168,所以時長應(yīng)該是10000000/168=6250秒=1.8小時。
Q&A
Q:為什么用最大容量TPS跑穩(wěn)定性?
A:有的觀點是用最大TPS的80%去跑穩(wěn)定性。跑穩(wěn)定性的目的就是看系統(tǒng)會不會因為長時間處理業(yè)務(wù)而引發(fā)潛在瓶頸。只要系統(tǒng)正常處理,資源沒有出問題也沒有報錯,就可以用最大TPS去跑。
異常性能場景
根據(jù)系統(tǒng)架構(gòu)模擬異常情況,如宕主機(jī)、宕數(shù)據(jù)庫等等,看系統(tǒng)性能下降是否符合預(yù)期并且能否在一定時間內(nèi)恢復(fù)

