效能基準測試是一項系統效能測量工作,根據目前的專案實際,在這裡做了一些新的定義。
基準測試在專案中與一般效能測試工作的主要區別在於其更短的回歸週期與直觀的趨勢分析,並同時為混合業務效能場景的指令碼執行緒配比計算提供依據。一般的效能測試往往只在版本計畫中或遭遇系統效能問題時進行,而基準測試在日常中進行,特別是在發生重大變更事件(例如:系統配置、環境發生變更)之前與之後的測試,讓測試結果資料與一般的效能測試結果資料更有實質上的參考意義。因為,當為系統建立效能基準後,基準資料作為效能指標的參照物,可用於判斷任意一項變更為系統帶來的具體影響。例如:某項配置優化後能夠為系統帶來的效能提公升是多少、系統某項操作歷史資料的增長與效能響應的關係、系統環境的變更對系統效能產生的影響。而且實施該項工作並不複雜。
基準測試資料的實際用途
1) 了解系統效能基準作為參照物(效能問題發生後的測試很難了解系統效能基準)
2) 識別系統或環境的配置變更對效能響應帶來的影響
3) 為系統優化前後的效能提公升/下降提供參考指標
4) 觀察系統的整體效能趨勢與拐點發生,及早識別系統效能風險
效能基準自動化測試與一般效能測試的主要區別
1) 測試週期:基準測試每天定時自動化執行,效能測試需要事件驅動執行。
2) 測試指令碼:基準測試的效能測試指令碼僅僅包含所關注業務的必須的http請求,不進行使用者行為模擬;效能測試的測試指令碼包含關鍵業務的所有上下文請求,並進行使用者行為的模擬。
3) 測試策略:基準測試策略固定,幾乎不允許修改(否則將與過去所有歷史資料發生斷層);效能測試需要根據不斷變化的效能需求進行修改。
4) 指令碼維護:基準測試的測試指令碼僅在訪問鏈結發生變更時維護,或者post請求引數發生變更時維護,get請求幾乎不需要維護;效能測試指令碼在每輪測試中一般都需要重新開發。
5) 結果用途:基準測試結果資料僅用於作為系統效能下降/提公升的衡量指標,效能測試結果指令碼可用於**使用者效能體驗、系統效能風險。
效能基準測試自動化測試的實施
1) 效能基準資料的獲取
利用apache的開源專案jmeter測試工具,使用jmeter針對關注的系統效能點進行指令碼開發,如下圖,執行緒在事務控制器「使用者登入」內進行系統登入,迴圈控制器內裝載了各個效能關注點的http請求:
在測試計畫中維護效能基準測試環境資訊與測試策略,包括:主機、埠、執行緒數、載入速度、迭代次數等。並採用50執行緒執行效能測試指令碼,每條執行緒執行10次迭代,每個效能關注點取得500個響應樣本,從而效能響應資料,包括:平均值、標準差、事務通過情況、錯誤內容。
2) 計畫任務的定時執行
利用apache開源專案ant每日中午定時執行基準測試,自動儲存效能測試結果,生成當日的效能基準測試結果資料,每日基準測試報告如下圖:
假定效能關注點為5個,採用以上測試策略,在系統效能響應理想的情況下,整個測試過程時間可在3分鐘內完成,最後生成一定數量的結果檔案,最好有30天以上
3) 資料的整合與趨勢分析
當取得足夠量的基準測試結果以後(例如:30天、60天、90天),即可對第二節中所提到的每天的測試結果資料進行整合,生成報表的形式,直觀的了解過去時間內,系統的效能拐點發生日期,對拐點發生當日的變更事件進行跟蹤。報表所體現的內容在使用summary中的平均響應時間、事務通過率作為系統整體效能響應考量指標。不把每個事務都展現到報表中,除非:
a) 系統整體事務通過率無法達到95%;
b) 系統整體響應時間平均值大於2秒,最高值大於10秒;
下面是用perl寫了個程式對html檔案進行分析的輸出,每個基準測試時間後對應了系統整體效能狀況(事務的通過率,以及響應時間的平均、最快、最大值),最後根據預定義的閾值給出結果,為了更好的說明問題,這裡把「平均響應時間大於5秒」判斷為效能下降,最後一列的「↘」表示了3月31日出現了效能拐點。
效能基準自動化測試
效能基準測試是一項系統效能測量工作,根據目前的專案實際,在這裡做了一些新的定義。基準測試在專案中與一般效能測試工作的主要區別在於其更短的回歸週期與直觀的趨勢分析,並同時為混合業務效能場景的指令碼執行緒配比計算提供依據。一般的效能測試往往只在版本計畫中或遭遇系統效能問題時進行,而基準測試在日常中進行,...
壓力測試 效能自動化測試
loadrunner loadrunner,是一種 系統行為和效能的負載測試工具。通過以模擬上千萬使用者實施併發負載及實時效能監測的方式來確認和查詢問題,loadrunner能夠對整個企業架構進行測試。企業使用loadrunner能最大限度地縮短測試時間,優化效能和加速應用系統的發布週期。loadr...
自動化測試 web自動化測試
自動化 由機器裝置代替人為完成制定目標的過程 優點 提高工作效率 減少勞動力 產品規格同一標準 批量生產 自動化測試 讓程式代替人為去驗證程式功能的過程,即在預設條件下執行程式系統 流程確定 搭建自動化框架 編寫測試用例,將其轉化為soupui 介面 自動化測試指令碼 執行自動化測試指令碼 輸出執行...