性能測試無論是在考試還是工作中,都是一個經(jīng)常出現(xiàn)的話題,性能測試有助于確認(rèn)被測系統(tǒng)是否能夠支持性能需求,以及預(yù)期的負(fù)載增長等。性能測試不只是關(guān)注不同負(fù)載場景下的響應(yīng)時間等指標(biāo),它也要通過測試來發(fā)現(xiàn)在不同負(fù)載場景下會出現(xiàn)的,例如速度變慢、內(nèi)存泄漏等問題的原因。下面就性能測試的概念、分類等知識點進(jìn)行總結(jié)學(xué)習(xí)。
?
?
概念:一般也叫做負(fù)載壓力測試,是指在一定約束條件下測試系統(tǒng)所能承受的并發(fā)用戶量、運行時間、數(shù)據(jù)量,以確定系統(tǒng)所能承受的最大負(fù)載壓力。需要注意的是性能評測需要在真實的環(huán)境下,檢查系統(tǒng)服務(wù)等級的滿足情況,評估并報告整個系統(tǒng)的性能,還需要對系統(tǒng)的未來容量作出預(yù)測和規(guī)劃。
?
具體來說,性能測試有以下常見的四種形式:
(1)負(fù)載測試:通過逐步增加系統(tǒng)負(fù)載,測試系統(tǒng)性能的變化,并最終確定在滿足性能指標(biāo)的情況下,系統(tǒng)所能承受的最大負(fù)載量的測試。
(2)壓力測試:通過逐步增加系統(tǒng)負(fù)載,測試系統(tǒng)性能的變化,并最終確定在什么負(fù)載條件下系統(tǒng)性能處于失效狀態(tài),并以此來獲得系統(tǒng)能提供的最大服務(wù)級別的測試。通俗地講,壓力測試是為了發(fā)現(xiàn)在什么條件下系統(tǒng)的性能會變得不可接受。可見,壓力測試是一種特定類型的負(fù)載測試。例如,訪問一個頁面的響應(yīng)時間規(guī)定為不超過3秒,負(fù)載測試就是測試在響應(yīng)時間為3秒時,系統(tǒng)所能承受的最大并發(fā)訪問用戶的數(shù)量,而壓力測試就是測試系統(tǒng)在多大的并發(fā)訪問用戶數(shù)量下,響應(yīng)時間不可接受,例如超過1分鐘(定義為失效狀態(tài))。
(3)疲勞強(qiáng)度測試:通常是采用系統(tǒng)穩(wěn)定運行情況下(例如7*24小時)能夠支持的最大并發(fā)用戶數(shù),或者日常運行用戶數(shù),持續(xù)執(zhí)行一段時間業(yè)務(wù),保證達(dá)到系統(tǒng)疲勞強(qiáng)度需求的業(yè)務(wù)量,通過綜合分析交易執(zhí)行指標(biāo)和資源監(jiān)控指標(biāo),來確定系統(tǒng)處理最大工作量強(qiáng)度性能的過程。一般情況下利用疲勞強(qiáng)度測試來模擬系統(tǒng)日常業(yè)務(wù)操作。
(4)大數(shù)據(jù)量測試:也叫做容量測試,包括獨立的數(shù)據(jù)量測試和綜合數(shù)據(jù)量測試兩類。獨立的數(shù)據(jù)量測試指針對某些系統(tǒng)存儲、傳輸、統(tǒng)計、查詢等業(yè)務(wù)進(jìn)行的大數(shù)據(jù)量測試。綜合數(shù)據(jù)量測試指和壓力性能測試、負(fù)載性能測試、疲勞性能測試相結(jié)合的綜合測試。
?
性能測試的目的總結(jié)如下:
(1)在真實環(huán)境下檢測系統(tǒng)性能,評估系統(tǒng)性能以及服務(wù)等級的滿足情況。
(2)預(yù)見系統(tǒng)負(fù)載壓力承受力,在應(yīng)用實際部署之前,評估系統(tǒng)性能。
(3)分析系統(tǒng)瓶頸、優(yōu)化系統(tǒng)。
性能測試常見的測試指標(biāo)包括:
并發(fā)用戶數(shù)
平均事務(wù)響應(yīng)時間
每秒事務(wù)數(shù)
每秒點擊次數(shù)
吞吐量
點擊率
資源利用率(CPU、內(nèi)存和磁盤等)
?
其中有關(guān)數(shù)據(jù)庫資源占用的性能監(jiān)控指標(biāo)包括:
讀寫頁面的使用情況
超出共享內(nèi)存緩沖區(qū)的操作數(shù)
上一輪詢期間作業(yè)等待緩沖區(qū)的時間
共享內(nèi)存中物理日志和邏輯日志的緩沖區(qū)的使用率
磁盤的數(shù)據(jù)塊使用情況以及被頻繁讀寫的熱點區(qū)域
用戶事務(wù)或者表空間事務(wù)
數(shù)據(jù)庫鎖資源
關(guān)鍵業(yè)務(wù)的數(shù)據(jù)表的表空間增長
SQL執(zhí)行情況