劉紅
摘要:當下正處于互聯(lián)網高速發(fā)展時期,更快、更穩(wěn)定、更安全的系統(tǒng)已成為用戶選擇軟件系統(tǒng)的一個重要因素,這使得更多的公司在軟件服務創(chuàng)新的同時,更加重視應用系統(tǒng)的性能特性。本文結合日常性能工作,主要從性能測試的定義,類型,方案的制定,流程,測試結果的指標進行說明。
關鍵詞:性能測試;loadrunner壓測
近年來,互聯(lián)網、移動互聯(lián)飛速發(fā)展,與此同時,隨著公司業(yè)務的發(fā)展,軟件需要更多的關注日漸增多的用戶數量,更加多層的交互場景及使用軟件產生的數據量,這就要求服務器能夠更加快速和及時地響應用戶請求。為了解決以上軟件公司所面臨的挑戰(zhàn),我們可以利用性能測試檢測系統(tǒng)的成熟度和客戶需求進行對比,確認系統(tǒng)是否滿足用戶對軟件在功能和性能上的需求。本文著重從性能測試的類型、流程,性能測試結果的系統(tǒng)指標進行說明。
1 性能測試的定義及類型
1.1 性能測試定義
性能測試是通過模擬真實環(huán)境(多用戶)測試系統(tǒng)應用,通過多種較極端的情況對測試系統(tǒng)進行攻擊。觀察應用軟件的系統(tǒng)指標(如:響應時間、吞吐量、每秒事務數、事務成功率等)和空間資源是否達到預期標準,如果未達到預期,需對結果指標進行分析,得出系統(tǒng)瓶頸,為軟件調優(yōu)提供解決方案。
1.2 性能測試類型
常見的性能測試類型包括以下幾種:
(1)并發(fā)測試:通過模擬多用戶同時做同一操作,觀察系統(tǒng)的性能和是否存在錯誤。
(2)壓力測試:系統(tǒng)在飽和狀態(tài)下,不斷給給定系統(tǒng)加壓,檢查系統(tǒng)長時間在較大壓力下的響應情況。
(3)綜合場景測試:是最能模擬真實業(yè)務場景的測試,綜合場景包括幾個常見要點:多個用戶、多個腳本、在線運行較長一段時間,觀察系統(tǒng)性能情況。
2 性能測試的流程
2.1 性能測試的流程
對系統(tǒng)進行性能測試時,應按照以下流程進行測試:
(1)分析性能測試需求,進行工作評估,制定性能測試方案,編寫測試計劃
(2)根據測試方案,準備測試腳本、測試環(huán)境及測試數據
(3)創(chuàng)建場景,執(zhí)行測試
(4)運行、監(jiān)控場景,收集性能數據,進行缺陷管理
(5)分析性能測試結果,編寫測試報告,提供系統(tǒng)調優(yōu)方案
2.2 性能測試工具loadrunner三大組件工作原理
(1)對于給定的被測系統(tǒng),Visual User Generator根據選定協(xié)議(Windows Sockets,Http/Html,MS SQL Server等協(xié)議),捕獲和記錄客戶端行為、生成腳本,用戶可進行腳本調試(如添加檢查點、事務、集合點等)。
(2)在VuGen中針對腳本,可以設置Run-time Settings
(3)在controller中設置場景:根據需求,選擇腳本,設置運行場景和runtime setting,并可以通過負載生成器模擬大量用戶進行負載和壓力測試。。
(4)運行場景,通過analysis組件查看報告,包括summary和多個graph,通過多種方法(如:合并圖表、網頁細分圖、鉆取、水晶報表等方法)分析性能測試結果數據,提供性能調優(yōu)的數據依據。
3 性能測試指標分析
3.1 響應時間
響應時間是指服務器對請求作出響應所消耗的時間。注意區(qū)分用戶的感性時間和真正的響應時間,感知時間是指從客戶端向系統(tǒng)提交請求開始返回信息的時間;實時響應時間是指從請求發(fā)送出去到頁面展示所有數據的時間。
3.2 吞吐量
吞吐量是指單位時間內服務器處理的字節(jié)數。如果一段時間內,用戶數量持續(xù)增加,而吞吐量趨于平衡甚至有略微減少不見遞增,說明該用戶數量即為當前系統(tǒng)所能承受的最大用戶數量,系統(tǒng)處理能力已經達到瓶頸。
3.3 TPS:
TPS是指服務器每秒處理的事務數,tps值越大,系統(tǒng)處理能力越強。
4 性能測試結果分析
性能測試數據可以通過性能測試工具loadrunne的analysis組件進行分析,得出系統(tǒng)瓶頸。常見的分析方法包括:合并圖表法、網頁細分圖、鉆取技術、硬件指標分析。下面結合性能測試經驗,提出幾個可能導致tps過低的原因:
(1)網絡帶寬
在壓力測試過程中會通過負載生成器模擬大量用戶,此時會產生大量對地請求,傳輸過程中的數據包需要較大帶寬,如果超出帶寬能力,則會造成響應不及時。
(2)硬件資源達到瓶頸
包括CPU(%Processor Time、Processor queue length)、內存(Avalible Mbytes)、磁盤(%Disk Time、page fault)、網絡(Bytes Total/sec)。
(3)數據庫設置的最大連接數不足
(4)連接池
連接池連接不夠,會導致請求響應不過來,造成排隊等待。
隨著公司業(yè)務的發(fā)展,軟件產品愈加復雜,公司會面臨更多日漸增多的用戶數量,更加多層的交互場景及超大數據量等諸多問題。如何提高軟件的性能,解決實際業(yè)務中的問題,也是我們做性能測試的根本目標。在性能測試過程中,我們應該制定更加合理的性能測試方案,監(jiān)控性能測試流程,對軟件做更加充分的測試,定位問題,找出瓶頸,為軟件調優(yōu)提供解決方案,提供更好的軟件服務。
(作者單位:江西軟件職業(yè)技術大學)