開發人員對系統調優後,需要測試人員配合去做效能測試,驗證這次優化是否有效果。如果效能指標相比較之前的效能指標更好了,說明系統優化的有效果。反之說明調優不理想
系統從無到上線,驗證新系統的能力是否能夠滿足某段時間系統使用要求,否則當高峰期來臨,系統可能會崩潰。
做效能測試經常跑一兩個小時或者幾十分鐘就可以了,但系統的穩定性,系統能否長期穩定的工作,這個是不夠的。系統出現的穩定性問題,一般有記憶體洩漏、連線數洩漏、死鎖、游標不夠用等,這些問題短時間內可能不會暴露出來。為了驗證系統穩定性,一般用效能峰值併發數(即系統支援的最大併發數)*7天*24小時,系統的吞吐量,平均響應時間等各項效能指標均正常則認為系統穩定性是ok的。根據系統的重要程度,可以適當調整執行的時間,但至少要壓測乙個晚上的時間。
同一系統,架構師會提供不同的架構方案。那麼不同的設計方案到底哪個好,我們可以通過效能測試驗證不同方案的效能,其次了解系統大概達到什麼量級的併發後系統就會出現問題,了解系統架構在達到效能峰值時哪塊會出現瓶頸,幫助開發針對性地進行系統調優工作。
一般考慮的點有如下幾點:
- 系統中被頻繁使用的功能、呼叫的介面等
- 系統中涉及大量資料庫讀、寫的功能
- 大量讀寫系統快取部分的功能,驗證快取是否生效
總得來說應該將使用者訪問量大的,頻繁運算元據庫的,系統核心功能這些地方考慮到效能測試範圍內。
主要對效能測試設計、測試執行以及資料分析。
量:包括業務量(業務型別),負荷量(系統處理的流量),配置量(軟體配置和硬體配置),使用者量(靜態使用者和動態使用者),時間量(測試的時間)。
全:主要是針對測試用例而言。測試用例理你包括預置條件,測試步驟和預期結果三部分,這個「全」重點針對預置條件和測試步驟的測試結果觀察和資料而言。
深:一是對系統地了解要深,二是對缺陷的分析要深。
快:一是測試經驗的固化,避免測試設計,觀察等遺漏。將經驗固化成模板或工具便於經驗的傳承,減少測試的重複和遺漏;二是效能測試的自動化,包括效能測試環境構建和測試執行以及測試分析的自動化,自動化對效能測試效率的提公升價值更大。
主要針對響應時間。簡單說,就是當使用者能夠在2秒以內得到響應時,會感覺系統的響應很快;當使用者在2-5秒之間得到響應時,會感覺系統的響應速度還可以;當使用者在5-10秒以內得到響應時,會感覺系統的響應速度很慢,但是還可以接受;而當使用者在超過10秒後仍然無法得到響應時,會感覺系統糟透了,或者認為系統已經失去響應,而選擇離開這個web站點,或者發起第二次請求。
用於減少風險,抓住重點進行更多的測試:80/20原則即帕累託法則(pareto principle),使用者80%的時間在使用軟體產品中20%的功能。「重點測試」就是測試這20%的功能,而其他80%的功能屬於優先順序低的測試範圍,佔測試20%的資源。
例項:對測試強度估算
基本概念:每個工作日80%的業務在20%的時間內完成。
例如:每天工作8個小時,那麼每天80%的業務在8*20%=1.6小時內完成。
例如:去年全年處理業務約100萬筆,其中,15%的業務處理中,每筆業務需對應用伺服器提交7次請求;70%的業務處理中,每筆業務需對應用伺服器提交5次請求;其餘15%的業務處理中,每筆業務對應用伺服器提交3次請求。根據以往的統計結果,每年的業務增量為15%,考慮到今後3年業務發展的需要,測試需按現有業務量的兩倍進行。
強度估算如下:
每年的總請求數為:
(100*15%*7+100*70%*5+100*15%*3)*2=1000萬次/年
每天的請求數為:
1000/160=6.25萬/天《備註:每個月為20個工作日,所以1年為160天》
每秒請求數:(62500×80%)/(8*20%*3600)=8.68次/秒
保證效能測試與真實生產環境的一致性,具體從以下三方面看:
如伺服器的型號,是否與其它應用程式共享此伺服器,是否在集群環境下,是否通過bigip進行負載均衡,客戶使用的硬體配置情況,使用的交換機型號,網路傳輸速率。
版本一致性
包括作業系統、資料庫、中介軟體的版本,被測系統的版本。
配置一致性
系統(作業系統/資料庫/中介軟體/被測試系統)引數的配置一致,這些系統引數的配置有可能對系統造成巨大的影響。所以,除了保證測試環境與真實環境所使用的軟體版本一致,也要關注其引數的配置是否一致。
基礎資料的一致性
包括**的業務資料量,以及資料型別的分配。很簡單的乙個列子,乙個系統的資料庫只有10條資料和一條資料庫裡幾千萬條資料,我們在對其進行效能測試時,得到的效能指標可能會有非常大的差別。
為了保證每次測試環境的更加一致性,磁碟的使用情況以及磁碟的碎片情況也會或多或少地影響的效能。
使用模式的一致性
盡量模擬真實場景下使用者的使用情況,其實,我們在做效能測試前期的需求分析,其主要目的也就是為了更真實的模擬使用者的使用情況。
效能測試 Jmeter
如何更快速的入門jmeter 建議通過錄製指令碼的方式,快速的了解乙個效能測試應該包括的元件以及它們的層級關係。關於錄製方式,請參考 jmeter基礎之 錄製指令碼 如下,通過badboy 工具錄製的乙個指令碼 指令碼過程 登入 126郵箱,給自己發一封郵件,祝自己聖誕快樂!並可以方便的將指令碼匯出...
jmeter效能測試
請參考 jmeter效能測試文章集合 jmeter 菜鳥入門到高階 系列 開源效能測試工具jmeter jmeter badboy環境搭建 badboy使用手冊 壓力測試之badboy和jmeter的簡單使用方法 jmeter 菜鳥入門到高階 系列 jmeter是我從事軟體測試工作以來接觸的第乙個效...
Jmeter效能測試
轉 1 準備好指令碼,非gui模式下執行 在jmeter的bin目錄下執行命令 使用命令 jmeter n t l n 非gui模式 t 需要執行的指令碼檔名,如 xx.jmx l 儲存的檔名,如 xx.jtl jmeter n t e 1 apache jmeter 3.1 test testca...