1.軟件性能的概念:算法
軟件性能是與軟件功能相對應的一種很是重要的非功能特性,代表了軟件系統對時間及時性及資源經濟性的要求。數據庫
2.不一樣角色對軟件性能的理解性能優化
(1)從系統用戶角度看軟件性能: 服務器
影響因素: 網絡
一、功能粒度 架構
二、客戶端網絡狀況 併發
三、服務器當前忙閒狀況 運維
四、…… socket
(2)從系統運維人員角度看軟件性能:數據庫設計
影響因素:
一、功能升級
二、用戶量增長
三、服務器硬件磨損
四、數據量增長
五、 ……
(3)從開發人員角度看軟件性能:
影響因素:
一、機構設計
二、數據庫設計
三、內存使用方式
四、線程同步方式
五、資源競爭
六、 ……
3.經常使用性能指標:響應時間、併發用戶數、吞吐量、服務器性能計數器
4.軟件性能的影響因素:
(1)硬件設施(部署結構、機器配置)
(2)網絡環境(客戶端帶寬、服務器端帶寬)
(3)操做系統(類型、版本、參數配置)
(4)中間件(類型、版本、參數配置)
(5)應用程序(性能)
(6)併發用戶數(系統當前訪問狀態)
(7)系統數據量(系統數據量大小)
5.軟件性能生命週期模型
(1)性能需求分析:根據系統的業務特色制定明確的性能需求,爲系統設計和性能測試提供依據
(2)概要設計:針對系統性能要求,從數據庫結構、軟件架構、部署結構等方面進行系統設計工做
(3)詳細設計:從單元粒度、算法邏輯複雜度、變量定義等方面進行系統的設計工做
(4)性能測試:對應不一樣的設計階段,能夠將性能測試分解爲單元性能測試、集成性能測試和系統性能測試
6.性能需求分析方法:響應時間、最大併發用戶數、吞吐量、資源利用率
7.軟件性能模型
1.軟件性能測試定義:
狹義的軟件性能測試指爲驗證軟件性能指標、評估系統服務能力、推薦系統軟硬件配置、完成系統性能優化等而開展的測試活動,這也是通常意義上人們對軟件性能測試的理解。
廣義的軟件性能測試指在測試過程當中須要相關性能測試方法配合完成的系統測試活動,包括可靠性測試、可恢復性測試、穩定性測試、兼容性測試、可擴展性測試等。
2.軟件性能測試的目標
3.經常使用性能測試方法
(1)基準測試:經過設計科學的測試方法、測試工具和測試系統,實現對一類測試對象的某項性能指標進行定量的和對比的測試。主要目的是檢驗系統性能與相關標準的符合程度。
(2)壓力測試:經過對軟件系統不斷施加壓力,識別系統性能拐點,來得到系統提供的最大服務級別的測試活動。主要目的是檢查系統處於壓力狀況下,應用的表現。
(3)負載測試:經過在被測系統上不斷施加壓力,知道達到性能指標極限要求。主要目的是找到特性環境下系統處理能力的極限。
(4)併發測試:指當測試多用戶併發訪問同一個應用、模塊、數據時是否發生隱藏的併發問題,如內存泄露、現成鎖、資源爭用問題。主要目的並不是爲了得到性能指標,而是爲了
發現併發所引發的問題。
(5)疲勞測試:經過讓軟件系統在必定訪問量狀況下長時間運行,以檢驗系統性能在多長時間後會出現明顯的降低。主要目的是驗證系統運行的可靠性。
(6)數據量測試:經過讓軟件在不一樣數據量狀況下運行,以檢驗系統性能在各類數據量狀況下的表現。主要目的是找到支持系統正常工做的數據量極限。
(7)配置測試:經過被檢測系統的軟/硬件環境的調整,瞭解各類不一樣環境對系統性能的影響程度,從而找到系統各項資源的最優分配原則。主要目的是瞭解各類不一樣因素對系統性能影響的程度,從而判斷出最值得進行的調優操做。
1.
2.HP性能測試過程
3.制訂性能測試計劃:
(1)明確測試範圍
(2)制訂時間(進度)計劃
(3)制訂成本計劃
(4)制訂環境計劃
(5)測試工具規劃
(6)測試風險分析
4.設計測試用例
5.搭建性能測試環境
(1)搭建硬件環境
(2)搭建軟件環境
(3)搭建測試工具環境
(4)準備數據環境
6.執行性能測試
(1)腳本錄製與開發
(2)場景設置
(3)測試執行
(4)測試監控
1.性能分析方法分類:
(1)指標達成法:用於驗證性能指標
(2)最優化分析法:用於能力驗證型測試
2.經常使用性能分析方法:
(1)快速瓶頸識別:
①硬件上的性能瓶頸 ②應用軟件上的性能瓶頸 ③應用程序上的性能瓶頸
④操做系統上的性能瓶頸 ⑤網絡設備上的性能瓶頸
(2)性能降低曲線:單用戶區域、性能平坦區、壓力區域、性能拐點
(3)內存分析方法 (4)處理器分析方法 (5)磁盤IO分析方法 (6)進程分析方法 (7)網絡分析方法
1.LoadRunner經過模擬實際用戶的操做行爲和實施實時性能檢測,來幫助用戶更快地確認和查找問題的所在。
2.確認系統選擇協議方法
(1)能夠直接確認。
(2)經過研發人員瞭解被測系統使用了什麼樣的協議。
(3)使用經常使用的數據監聽工具進行數據包分析。
(4)萬能協議Winsocket協議。
3.LoadRunner工具組成
(1)三個前臺功能模塊
(2)兩個後臺功能模塊
4.LoadRunner 中的關鍵概念
(1)虛擬用戶:Virtual User簡稱Vuser,性能測試過程當中執行VU腳本以模擬真實用戶對系統訪問的執行實體。
(2)VU腳本:Script,記錄了用戶執行系統業務的操做過程,是Vuser執行的對象。
LoadRunner支持的腳本語言有:Java、C、Visual Basic、VB Script等,默認的腳本生成語言爲C語言。
(3)場景:Scenario,一次性能測試執行內容的定義,用來模擬真實用戶是如何產生壓力的。(手工場景和麪向目標場景)
場景由所要執行的腳本、虛擬用戶、負載生成器、運行過程配置、實時監控五方面構成。
(4)事務:Transaction,提供一種端對端的測量方法,用於測量一個業務流程中執行一個或多個步驟所花費的時間。(可理解爲一個計時單位)
(5)檢查點:Check Point,提供了一種執行結果正確性驗證機制,保證了測試工具對執行經過判斷的準確性。
(6)思考時間:Think Time,提供了一種讓VU腳本暫停執行(等待一段時間)的機制,用來模擬實際用戶在不一樣操做之間等待時間,以便更加真實地反映用戶訪問系統的行爲規律。
(7)集合點:Rendezvous,集合點提供了一種用戶併發訪問機制,用來模擬多用戶對系統的併發訪問。
1.建立測試腳本流程
2.兩種錄製模式:
(1) HTML-based script (基於HTML的腳本)錄製模式是loadrunner的默認模式,單獨步驟
(2)URL-based script (基於URL的腳本),每一個請求
3. LoadRunner提供兩種註釋方法:
(1)單行註釋。在代碼行的後面,添加「//」,「//」的後面直到本行結束的內容爲註釋內容。
(2)塊註釋。一個註釋塊是以「/*」開頭,並以「*/」結尾的串。在「/*」和「*/」之間的即爲註釋。
4.設置步長(多久迭代一次腳本):Pacing
5.Run Vuser as a process:以一個進程運行虛擬用戶
Run Vuser as a thread:以一個線程運行虛擬用戶
6.動態驗證是須要作關聯
7.四種日誌類型
1.場景主要是用來模擬真實用戶向被測試系統產生壓力,是一種用來模擬大量用戶操做的技術手段。
2.Controller(中央控制器):負責設計與執行性能測試用例場景的組件。
3.測試場景類型:
(1)Manual Scenario:手工場景
(2)Goal-Oriented Scenario:面向目標的場景
4.負載發生器是一個能夠獨立部署並運行腳本的負載引擎。
5.手工場景:
(1)Scenario模式:
①Real-world schedule(真實場景模式)
②Basic Schedule(基礎模式)
(2)Group模式
6.SLA(服務水平協議)是您爲負載測試場景定義的具體目標。
7.面向目標的場景5種類型目標
(1)Vuser數
(2)每秒點擊次數(僅Web Vuser)
(3)每秒事務數
(4)每分鐘頁面數(僅Web Vuser)
(5)場景的事務響應時間
8.系統參數監控
(1)場景用戶狀態
(2)場景運行狀態
(3)計數器管理
①監控Windows、SQL Server、IIS
②Windows監控Linux/UNIX
③監控AIX ④監控Oracle ⑤監控Weblogic ⑥監控Apache
1.功能:系統性能測試的目的是查找系統的性能問題,而後找出這些問題的根源。
2.Analysis測試結果分析方法
(1)從分析Summary的事務執行狀況入手
(2)查看負載發生器和服務器的系統資源狀況
(3)查看虛擬用戶與事務的詳細執行狀況
(4)查看錯誤發生狀況
(5)查看Web資源與細分網頁