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