轉(zhuǎn)載自https://www.testwo.com/article/725
性能測試的五大測試內(nèi)容:
1、壓力測試:強(qiáng)調(diào)極端暴力
2、穩(wěn)定性測試:在一定壓力下,長時(shí)間運(yùn)行的情況
3、基準(zhǔn)測試:在特定條件下的性能測試
4、負(fù)載測試:不同負(fù)載下的表現(xiàn)
5、容量測試:最優(yōu)容量
性能測試外部指標(biāo):
1、吞吐量:每秒鐘系統(tǒng)能夠處理的請求數(shù)、任務(wù)數(shù)。
2、響應(yīng)時(shí)間:服務(wù)處理一個請求或一個任務(wù)的耗時(shí)。
3、錯誤率:一批請求中結(jié)果出錯的請求所占比例。
性能測試內(nèi)部指標(biāo):
1、CPU、
2、內(nèi)存、
3、服務(wù)器負(fù)載、
4、網(wǎng)絡(luò)、
5、磁盤IO等
常見性能瓶頸:
1、吞吐量到上限時(shí)系統(tǒng)負(fù)載未到閾值:一般是被測服務(wù)分配的系統(tǒng)資源過少導(dǎo)致的。測試過程中如果發(fā)現(xiàn)此類情況,可以從ulimit、系統(tǒng)開啟的線程數(shù)、分配的內(nèi)存等維度定位問題原因
2、CPU的us和sy不高,但wa很高:如果被測服務(wù)是磁盤IO密集型型服務(wù),wa高屬于正常現(xiàn)象。但如果不是此類服務(wù),最可能導(dǎo)致wa高的原因有兩個,一是服務(wù)對磁盤讀寫的業(yè)務(wù)邏輯有問題,讀寫頻率過高,寫入數(shù)據(jù)量過大,如不合理的數(shù)據(jù)載入策略、log過多等,都有可能導(dǎo)致這種問題。二是服務(wù)器內(nèi)存不足,服務(wù)在swap分區(qū)不停的換入換出。
3、同一請求的響應(yīng)時(shí)間忽大忽小:在正常吞吐量下發(fā)生此問題,可能的原因有兩方面,一是服務(wù)對資源的加鎖邏輯有問題,導(dǎo)致處理某些請求過程中花了大量的時(shí)間等待資源解鎖;二是Linux本身分配給服務(wù)的資源有限,某些請求需要等待其他請求釋放資源后才能繼續(xù)執(zhí)行。
4、內(nèi)存持續(xù)上漲:在吞吐量固定的前提下,如果內(nèi)存持續(xù)上漲,那么很有可能是被測服務(wù)存在明顯的內(nèi)存泄漏,需要使用valgrind等內(nèi)存檢查工具進(jìn)行定位。
測試報(bào)告輸出:
1、測試結(jié)論:包括被測服務(wù)最大QPS、響應(yīng)時(shí)間等指標(biāo)是否達(dá)到期望,部署建議等。
2、測試環(huán)境描述:包括性能需求、測試用服務(wù)器配置、測試數(shù)據(jù)來源、測試方法等
3、監(jiān)控指標(biāo)統(tǒng)計(jì):響應(yīng)時(shí)間統(tǒng)計(jì)、QPS、服務(wù)器指標(biāo)統(tǒng)計(jì)、進(jìn)程指標(biāo)統(tǒng)計(jì)。建議最好用圖表來表示統(tǒng)計(jì)數(shù)據(jù)。
軟件性能的關(guān)注點(diǎn):
1、用戶角度:
用戶操作響應(yīng)時(shí)間
及時(shí)正向友善的錯誤提示
2、運(yùn)維角度:
響應(yīng)時(shí)間
服務(wù)器資源使用情況是否合理
應(yīng)用服務(wù)器和數(shù)據(jù)庫資源使用是否合理
系統(tǒng)能否實(shí)現(xiàn)擴(kuò)展
系統(tǒng)最多支持多少用戶訪問、系統(tǒng)最大業(yè)務(wù)處理量是多少
系統(tǒng)性能可能存在的瓶頸在哪里
更換那些設(shè)備可以提高性能
系統(tǒng)能否支持7×24小時(shí)的業(yè)務(wù)訪問
3、開發(fā)設(shè)計(jì)人員角度:
架構(gòu)設(shè)計(jì)是否合理
數(shù)據(jù)庫設(shè)計(jì)是否合理
代碼是否存在性能方面的問題
系統(tǒng)中是否有不合理的內(nèi)存使用方式
系統(tǒng)中是否存在不合理的線程同步方式
系統(tǒng)中是否存在不合理的資源競爭
4、性能測試工程師的角度:以上所有的性能點(diǎn)
軟件性能的幾個主要術(shù)語:
1、響應(yīng)時(shí)間:對請求作出響應(yīng)所需要的時(shí)間
網(wǎng)絡(luò)傳輸時(shí)間:N1+N2+N3+N4
應(yīng)用服務(wù)器處理時(shí)間:A1+A3
數(shù)據(jù)庫服務(wù)器處理時(shí)間:A2
響應(yīng)時(shí)間=N1+N2+N3+N4+A1+A3+A2
2、并發(fā)用戶數(shù)的計(jì)算公式
系統(tǒng)用戶數(shù):系統(tǒng)額定的用戶數(shù)量,如一個OA系統(tǒng),可能使用該系統(tǒng)的用戶總數(shù)是5000個,那么這個數(shù)量,就是系統(tǒng)用戶數(shù)。
同時(shí)在線用戶數(shù):在一定的時(shí)間范圍內(nèi),最大的同時(shí)在線用戶數(shù)量。
同時(shí)在線用戶數(shù)=每秒請求數(shù)RPS(吞吐量)+并發(fā)連接數(shù)+平均用戶思考時(shí)間
平均并發(fā)用戶數(shù)的計(jì)算:C=nL / T
其中C是平均的并發(fā)用戶數(shù),n是平均每天訪問用戶數(shù)(login session),L是一天內(nèi)用戶從登錄到退出的平均時(shí)間(login session的平均時(shí)間),T是考察時(shí)間長度(一天內(nèi)多長時(shí)間有用戶使用系統(tǒng))
并發(fā)用戶數(shù)峰值計(jì)算:C^約等于C + 3*根號C
其中C^是并發(fā)用戶峰值,C是平均并發(fā)用戶數(shù),該公式遵循泊松分布理論。
3、吞吐量的計(jì)算公式:
指單位時(shí)間內(nèi)系統(tǒng)處理用戶的請求數(shù)
從業(yè)務(wù)角度看,吞吐量可以用:請求數(shù)/秒、頁面數(shù)/秒、人數(shù)/天或處理業(yè)務(wù)數(shù)/小時(shí)等單位來衡量
從網(wǎng)絡(luò)角度看,吞吐量可以用:字節(jié)/秒來衡量
對于交互式應(yīng)用來說,吞吐量指標(biāo)反映的是服務(wù)器承受的壓力,他能夠說明系統(tǒng)的負(fù)載能力
以不同方式表達(dá)的吞吐量可以說明不同層次的問題,例如,以字節(jié)數(shù)/秒方式可以表示數(shù)要受網(wǎng)絡(luò)基礎(chǔ)設(shè)施、服務(wù)器架構(gòu)、應(yīng)用服務(wù)器制約等方面的瓶頸;已請求數(shù)/秒的方式表示主要是受應(yīng)用服務(wù)器和應(yīng)用代碼的制約體現(xiàn)出的瓶頸。
當(dāng)沒有遇到性能瓶頸的時(shí)候,吞吐量與虛擬用戶數(shù)之間存在一定的聯(lián)系,可以采用以下公式計(jì)算:F=VU * R /
其中F為吞吐量,VU表示虛擬用戶個數(shù),R表示每個虛擬用戶發(fā)出的請求數(shù),T表示性能測試所用的時(shí)間
4、性能計(jì)數(shù)器:
是描述服務(wù)器或操作系統(tǒng)性能的一些數(shù)據(jù)指標(biāo),如使用內(nèi)存數(shù)、進(jìn)程時(shí)間,在性能測試中發(fā)揮著“監(jiān)控和分析”的作用,尤其是在分析統(tǒng)統(tǒng)可擴(kuò)展性、進(jìn)行新能瓶頸定位時(shí)有著非常關(guān)鍵的作用。
資源利用率:指系統(tǒng)各種資源的使用情況,如cpu占用率為68%,內(nèi)存占用率為55%,一般使用“資源實(shí)際使用/總的資源可用量”形成資源利用率。
5、思考時(shí)間的計(jì)算公式:
Think Time,從業(yè)務(wù)角度來看,這個時(shí)間指用戶進(jìn)行操作時(shí)每個請求之間的時(shí)間間隔,而在做新能測試時(shí),為了模擬這樣的時(shí)間間隔,引入了思考時(shí)間這個概念,來更加真實(shí)的模擬用戶的操作。
在吞吐量這個公式中F=VU * R / T說明吞吐量F是VU數(shù)量、每個用戶發(fā)出的請求數(shù)R和時(shí)間T的函數(shù),而其中的R又可以用時(shí)間T和用戶思考時(shí)間TS來計(jì)算:R = T / TS
下面給出一個計(jì)算思考時(shí)間的一般步驟:
A、首先計(jì)算出系統(tǒng)的并發(fā)用戶數(shù)
C=nL / T F=R×C
B、統(tǒng)計(jì)出系統(tǒng)平均的吞吐量
F=VU * R / T R×C = VU * R / T
C、統(tǒng)計(jì)出平均每個用戶發(fā)出的請求數(shù)量
R=u*C*T/VU
D、根據(jù)公式計(jì)算出思考時(shí)間
TS=T/R
轉(zhuǎn)載自https://www.testwo.com/article/725
微信公眾號:玩轉(zhuǎn)測試開發(fā)
歡迎關(guān)注,共同進(jìn)步,謝謝!