技術問答
技術文章
iT 徵才
Tag
聊天室
2024 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2022 iThome 鐵人賽
DAY
26
1
自我挑戰組
開始系統測試
系列 第
26
篇
Day 26 | 性能測試
14th鐵人賽
Pancy
2022-10-11 01:07:48
1995 瀏覽
分享至
(一)、性能測試的含義
什麼是性能測試
測試軟體的性能表現,考量軟體執行得如何
一般關注時間/效率、資源占用等情形
什麼時候進行
已經通過系統測試,功能比較穩定時進行。
(二)、性能測試術語
請求 - 客戶端像伺服器發出請求獲得數據、文件或圖片等資源
響應 - 伺服器向客戶端發送數據、文件或圖片等資源
協議
傳輸層協議 - tcp、udp
應用層協議 - ftp、http、dns、dhcp、smtp、pop
響應時間
應用程式從用戶發出請求開始,到客戶端接收到所有數據所消耗的時間
網頁響應時間細分
網路傳輸時間:N1+N2+N3+N4
應用資料庫處理數據:A1+A3
資料庫處理時間:A2
在線用戶 - 正在使用軟體的用戶
開發用戶
指同一時刻與伺服器進行數據交換的所有用戶數量
計算開發用戶數
一般都根據以往經驗和行業標準進行估算
參考其他同類產品
分析歷史數據
試營運
虛擬用戶 - 性能測試工具使用虛擬用戶模擬真實用戶的行為
吞吐量與吞吐率
吞吐量 - 指一段時間內伺服器處理的位元組數,直接顯現伺服器的乘載能力
從吞吐量和VU關聯圖可以看出,吞吐量再VU增長到一定數量時,系統出現瓶頸,此時吞吐量不再隨著VU增大,而是趨近於平衡
實際測試時,吞吐量在測試前是未知的,必須通過不斷添加虛擬用戶來測試,來找到吞吐量最大值
吞吐率(Throughout)
單位時間內從伺服器返回的位元組數,即吞吐量/時間,也可以是單位時間內處理的客戶請求數
是衡量網路性能的一個重要指標,吞吐率越大表是系統的負載能力越強
每秒任務數(TPS,Transaction Per Second)
表示每秒系統處理的任務數量,是衡量系統處理能力的重要指標
如果每個任務對應一筆業務,那麼TPS就表示伺服器每秒處理的業務筆數
點擊率(Hit Per Second)
指每秒鐘用戶向伺服器條間的HTTP請求數量
點擊一次可能會向伺服器發出多個HTTP請求
通常伺服器都有防刷新機制,以防止刷新導致的巨大壓力
點擊率僅僅反映客戶端提交的請求數,不能表示伺服器當前承受的壓力,因為伺服器不能處理全部請求時,可以拒絕客戶端的部份請求
若把每次點擊視為一次提交事務來對待,則點擊率與TOS同義。
思考時間(Think Time)
也稱休眠時間、等待時間
指用戶在進行操作時,每個請求間的時間間隔
負載測試一般忽略思考時間,壓力或可靠性測試根據實際情況設置一個思考時間,通常思考時間設置為3~5秒
資源利用率
資源利用率
指伺服器系統中不同硬體資源被占用的程度,包含CPU使用率、記憶體使用率、硬碟使用率、網路等
性能測試中常用資源利用率進行橫向比對,如CPU使用率很高,而其他資源較低,可知CPU是系統瓶頸
配置優化測試中,通過比較配置優化前後的系統資源利用率來判斷優化結果。
性能計數器(Counter)
是描述伺服器或操作系統性能的一些數據指標,主要是通過添加計數器來觀察系統資源的使用情況
計數器在性能測試中發揮著「監控和分析」的關鍵作用,尤其是分析系統可擴展性和定位性能瓶頸時
性能測試中分析測試結果時,必須機於多個不同的計數器進行分析
(三)、性能測試分類
負載測試(Load Testing)
通過對被測系統不斷地加壓,直到超過預定的指標或者部份資源達到了飽和狀態不能再加壓為止
此方法主要是為了尋找系統最大的負載能力,為性能優化提供依據
壓力測試(Stress Testing)
當系統已經達到一定的飽和程度,測試系統處理業務的能力,測試系統是否會出現崩潰等
一般通過模擬負載等方法,使系統資源達到一個較高水平
此方法一般用於系統穩定性測試
併發測試(Concurrency Testing)
模擬多個用戶同時訪問同一應用、模組或數據,觀察系統是否存在死結、系統處理速度明顯下降等性能問題
體積測試/洪水測試(Volume Testing)
尋找軟體系統某向指標的極限值(如最大併發用戶數、資料庫紀錄數、最大負載等)的測試,是一種測試目標
可靠性测试(Reliability Testing)
或稱穩定性測試、健壯性測試
當系統在一定的業務壓力下持續運作一段時間,觀察系統是否達到要求的穩定性
可靠性測試一般必須給出一個明確的要求,如系統能夠持續無故障運行幾天
是一種測試目標
配置測試(Configuration Testing)
配置測試
通過調整軟/硬體環境,了解不同環境對系統性能的影響從而找到系統的最佳配置
此方法一般用於系統優化和規劃
基準測試
在一定的軟硬體和網路環境下,模擬一定數量的虛擬用戶運行一種或多種業務,將測試結果作為基線數據,在系統優化或系統評測過程中,通過運行相同的業務場景來比測試結果,確定優化是否達到效果,或為系統的選擇提供依據
(四)、性能測試流程
性能測試過程分為四個階段:測試設計、建構、執行、分析
設計
定義待測試的業務流程、業務的平均處理量、業務處理量的最高峰值、組合業務流程、系統整體用戶和響應時間目標
建構
設計配置和配置測試系統及基礎設施,使用自動化性能測試解決方案建構測試腳本和負載方案
具體包括:編寫腳本、增強腳本、設計場景
執行
包含運行負載方案和測量系統性能,對系統資源進行監控
分析、診斷和調節
主要測量系統性能,並使負載測試進入下一級別,重點查找問題原因以幫助工程師迅速解決問題,並適時調節系統參數以提高性能
留言
追蹤
檢舉
上一篇
Day 25 | 介面測試和易用性測試
下一篇
Day 27 | Web測試
系列文
開始系統測試
共
30
篇
目錄
RSS系列文
訂閱系列文
11
人訂閱
26
Day 26 | 性能測試
27
Day 27 | Web測試
28
Day 28 | 手機APP測試(一)
29
Day 29 | 手機APP測試(二)
30
Day 30 | 自動化測試概述
完整目錄
直播研討會
{{ item.subject }}
{{ item.channelVendor }}
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
1064
組
團體組數
40
組
累計文章數
22200
篇
完賽人數
602
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
windows server
linux
css
react
vue.js
熱門問題
熟識南投軟體工程師推薦
如何練國考資訊題?
Active Directory 環境中時間無法同步問題
筆電無法使用usb開機重裝系統
CCNA相關問題詢問
電商在販售商品時,可以自行縮短保固期限嗎?
求救 有人會修改cookie權限嗎
python scrapy pipeline實作問題請教
HP印表機WSD PORT連結問題
防火牆互通問題
熱門回答
防火牆互通問題
熟識南投軟體工程師推薦
Active Directory 環境中時間無法同步問題
筆電無法使用usb開機重裝系統
if函數中的>&<&=是否可以使用儲存格代替
熱門文章
每日一篇學習筆記 直到我做完專題 :( [Day1]
每日一篇學習筆記 直到我做完專題 :( [Day2]
[翻譯]使用AI工具寫程式碼時如何避免「AI幻覺」?
每日一篇學習筆記 直到我做完專題 :( [Day3]
每日一篇學習筆記 直到我做完專題 :( [Day4]
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}