軟體測試的基本理論-性能測試-3
- 一 .性能測試
-
- 1.性能測試概述
- 2.性能測試名額
-
- a:響應時間
- 吞吐量
- 并發/并發數/并發使用者數
- TPS(transaction per second)
- 資源使用率
- 3.性能測試種類
-
- 負載測試
- 壓力測試(強度 測試)
- 并發測試
- 配置測試
- 可靠性測試
- 容量測試
- 4.性能測試流程
- 5.性能測試工具
- 補充
一 .性能測試
1.性能測試概述
性能測試:
就是使用性能測試工具模拟正常、巅峰及異常負載的狀态。對系統的各項性能名額進行測試活動;
目的:
1,驗證系統是否滿足預期性能需求,包括系統的執行效率,穩定性,可靠性,安全性等;
2,分析軟體系統在各種負載水準下運作狀态,提高性能和效率;
3,識别系統缺陷,尋找系統中可能存在的性能問題,定位系統瓶頸并解決問題
4,系統調優、探測系統設計與資源之間的最佳平衡,改善并優化系統性能;
2.性能測試名額
a:響應時間
網絡傳輸時間: t1 t4
伺服器處理時間: t2 t3
吞吐量
每秒鐘系統能夠處理的請求數、任務數。
一個系統的吞度量(承壓能力)與request對CPU的消耗、外部接口、IO等等緊密關聯。
單個reqeust 對CPU消耗越高,外部系統接口、IO影響速度越慢,系統吞吐能力越低,反之越高。
系統吞吐量幾個重要參數:QPS(TPS)、并發數、響應時間
& QPS(TPS):每秒鐘request/事務 數量
& 并發數: 系統同時處理的request/事務數
& 響應時間: 一般取平均響應時間
QPS(TPS)= 并發數/平均響應時間
并發/并發數/并發使用者數
并發:
狹義:同一時間做相同的事情
廣義:同一時間做不同僚情、混合場景
性能測試:簡單的狹義并發、然後再廣義的并發,即:先做簡單接口性能測試、在做業務性能測試、最後做混合業務場景性能測試
并發數:機關時間内向伺服器發起請求的使用者數
并發使用者數:用于模拟真實使用者想伺服器發起請求的性能測試虛拟使用者數量
系統使用者數:隻要通路難過系統的使用者、肯呢個一次含有一次性通路的使用者
線上使用者數:目前正在通路的系統使用者,不一定有壓力
TPS(transaction per second)
每秒鐘request/事務 數量
資源使用率
CPU
記憶體
磁盤
I/O 磁盤的換入換出
3.性能測試種類
性能測試覆寫範圍很廣,包括執行效率、資源占用、系統穩定性、安全性、相容性、可靠性、可擴充性等;
負載測試
通過逐漸增加系統負載,測試系統性能的變化,并在滿足最終确定性能名額的情況下,系統所能承受的最大負載量的測試
負載測試是正常範圍的測試
壓力測試(強度 測試)
逐漸增加系統負載,測試系統性能的變化,并最終确定在什麼負載下系統性能處于失效狀态,并以此來獲得系統能提供的最大服務級别的測試
壓力測試可以揭露那些隻有在高負載下才會出現bug,如:同步問題、記憶體洩漏等;
颠峰值測試:屬于壓力測試一種,他是瞬間将壓力加載到最大,測試軟體在極限壓力下的運作情況;
并發測試
是指通過模拟使用者并發通路,測試多使用者并發通路同一應用、同一個子產品或資料記錄時是否存在死鎖或者其他性能問題。測試并無标準,隻是測試是否出現性能方面問題;
配置測試
是指調整軟體系統的軟硬體環境,測試各種黃靜對系統性能影響,進而找到系統各項資源的最優配置設定原則。配置測試不改變代碼,隻改變軟硬體配置,例如:安裝軟體更新資料庫,配置更好的Cpu和記憶體等;
可靠性測試
是指給系統加載一定的業務壓力,使其持續運作一短時間 ,測試系統能否穩定運作,由于加載運作時間較長,是以可靠性測試可以測試是否有記憶體洩漏問題;
容量測試
是指在一定硬體及網絡環境下,測試系統所能支援的最大使用者量、最大存儲量等。容量測試通常與資料庫、系統資源有關,用于規劃将來需求增長時,對資料庫和系統資源的優化;
4.性能測試流程
1,分析性能測試需求
此步驟是整個性能測試基礎,測試需求不明确則整個測試過程都毫無意義;在這個階段,測試人員需要收集相關資料資訊、與開發溝通、對整個項目了解,針對性能測試部分進行分析,确定測試目标;
2,制定性能測試計劃
整個性能的步驟都按照測試計劃執行,其核心内容包括:确定測試環境、确定性能驗收名額、設計測試場景、準備測試資料
3,設計性能測試用例
測試用例時根據測試場景為測試準備的資料,測試人員需要在測試中設計出足夠多的測試用例以達到最大的測試覆寫;
4,編寫測試腳本
測試腳本就是虛拟使用者的執行操作;使用腳本省去手動執行的麻煩,并降低錯誤率;
要求:
選擇正确的協定,腳本的協定要與被測軟體協定保持一緻;
性能測試工具一般可以自動生成測試腳本,測試人員可以手動編寫腳本,腳本也可以使用多種語言、
編寫腳本也要遵循代碼規範,保證代碼品質;
5,測試執行及監控
每個階段測試人員需要按照測試計劃執行測試用例,并對測試過程進行嚴密監控,記錄各項資料變化。
測試人員關注點:
性能名額:性能名額的變化,響應時間、吞吐量、并發等
資源占用與釋放情況:性能測試時,CPU、記憶體、磁盤、網絡等使用情況,系統停止後,各項資源是否正常釋放;
警告資訊:軟體出現問題時,要有警告資訊,測試人員應及時關注;
日志檢查:進行性能測試時經常分析系統日志,包括記錄檔,資料庫日志等
6,運作結果分析
性能測試結束後,需對收集整理測資料并分析,将資料與客戶對比資料進行對比,是否滿足客戶性能要求
7,送出性能測試報告
測試完成需要編寫性能測試報告,闡述性能測試的目标、性能測試環境、性能測試用例、腳本使用情況、性能測試結果及性能測試過程中遇到的問題和解決方案。軟體會多次性能測試,需資料歸檔,能及時回歸;
5.性能測試工具
loadrunner----VuGen、Controller、Analysis
Jmeter
這裡就不再對工具做更多講述
補充:測試理論
安全測試
補充
1, 壓力測試與負載測試兩者差別
相同點:都是性能測試
負載測試強調系統正常工作情況下的性能名額
壓力測試的目的是發現在什麼條件下系統的性能變得不可接受,發現應用程式性能下降的拐點。