论“性能需求分析”系列专题(二)之 常用的性能需求获取方法
實際過程中常常對性能需求該如何獲取而糾結,本博文進行詳細的介紹,理論與案例一并附上,希望大家多多討論拍磚。
常用的性能需求獲取方法
下面就跟大家一起討論幾種常用的獲取性能需求的方法。
1.依據用戶明確要求
依據用戶明確給出的測試相關數據和指標是分析系統性能需求最直接、最簡便的方法。對于前面提到的專業型客戶,如銀行、軍事、醫療、政府機關等以及國外客戶大多都會給出較明確的性能需求(響應時間、并發量、服務器資源指標等),作為開發方,只需進行整理后參照明確指標進行測試即可。
2.依據用戶提供的已有數據整理分析得出
所謂客戶提供的已有數據指客戶業務交易的紙質數據、客戶舊版本系統中的歷史數據(服務器日志、數據庫記錄等)。例如,一個未曾使用過電子系統的保險公司,獲取需求時可以通過匯總已有投保紙質單據進行分析,得出各地域及每年某個時間段的投保、理賠數量、主要投保及理賠的險種業務等來進行性能測試。若該公司已有舊版本的電子投保系統,則舊版本的運行系統中存在了大量有價值的數據。比如:Web服務器(IIS、Apache或Jboss等)的日志中記錄了系統訪問情況以及出錯信息等,我們可依據日志信息分析客戶的業務量,以及每年、每月、每周、每天的峰值業務量等(通過服務器日志獲取性能需求的方法參見1.6.3節)。此時,以充分的真實業務數據做參考得出的性能需求顯得更加真實有效。
3.依據同行業中類似項目或類似行業中的數據
該方法包含了兩種情況,一種為“依據同行業種類似項目的數據”,另一種為“依據類似行業中的數據”。這兩種情況所表達的含義是一致的:當自己沒有某些資源時,要學會借助外界力量幫助自己實現性能目標的獲取。比如,有讀者可能會這樣問:需求中沒有說明性能需求,只說要做一個網站的性能測試。此時,如何開展性能測試呢?回答是:先分析用戶群特征,然后參考其他同行企業的公布出來的數據進行測試。
下面,給出幾個依據同行業中類似項目的數據或類似行業中的數據得出性能需求的幾個實例。
例1-1.?在某企業網站的成功解決方案中介紹該方案的優勢為:“實現了7*24穩定運行要求,系統可承載3000用戶同時訪問,1秒快速響應您的請求等”,其中的數據可作為性能需要的參考。
例1-2.?有一些網站首頁本身就提供了點擊量、文章瀏覽量等統計信息,盡管在許多時候,不能完全照搬這些數據,但這些信息仍然具有很強的參考價值。
例1-3.?在開發一個保險類軟件時,除了可從客戶發布的一些成功解決方案中獲取數據,還能主動去索取一些數據,比如,可以咨詢某保險公司:“我想購買貴公司的保險,但首先要了解一下投保情況和理賠的數據或比例等,好讓自己更確信公司的誠信……”。不過,這種方式不被推薦,因為對方的回答很可能存在水分以提高業務量。
例1-4.?可以借助一般的B/S架構的項目性能目標來套,比如:2/5/10原則,即2秒的響應是愉快的,5秒是可接受的,10秒是最大可忍受的。
4.80/20原則分析計算得出
在性能測試需求獲取中,經典的80/20原則可理解為:每個工作日中80%的業務在20%的時間內完成;80%的功能只會有20%的用戶訪問,或者說80%的用戶只使用20%的功能。
例1-5.?每年業務量集中在8個月內,每個月有20個工作日,每個工作日為8小時工作制。根據80/20原則,可得出,每天80%的業務在1.6小時(8小時*20%)內完成。去年,全年處理業務約100萬筆,其中15%的業務處理中每筆業務需對應用服務器提交7次請求;70%的業務處理中每筆業務需對應用服務器提交5次請求;其余15%的業務處理中每筆業務需對應用服務器提交3次請求。根據以往統計結果,每年的業務增量為15%,考慮到今后3年業務發展的需要,測試需按現有業務量的2倍進行。請根據上述數據進行測試強度的估算。
v每年總的請求數:
(100萬筆*15%*7次/筆+100*70%*5/筆+100*15%*3/筆)*2倍=1000萬次/年。
v每天請求數:
。
v每秒請求數:
(62500次/天*80%)/(8小時*20%*3600秒/小時) = 8.68次/秒(約為9次/秒)。
可見,服務器處理能力應達9次/秒。
5.任務分布圖
若利用上面的某種方法獲取到了客戶業務相關的某些數據,則可借助任務分布圖作進一步分析。任務分布圖能夠直觀地展現客戶業務在24小時內的交易情況,能協助讀者整理出交易頻繁的業務種類及相應的時間段。如:表中是某在線購物網站的任務分布圖,從中可見:12:00-14:00及20:00-22:00點之間的交易混合程度較高,“查詢”任務的并發用戶在14:00達到最大。任務分布圖也支持對全年或某個月的任務分布情況作統計分析,在此不再贅述。
某在線購物網站的任務分布圖
| 典型業務 | 并發用戶數(單位:百人) | |||||||||||
| 登錄 | 2 | 5 | 30 | 35 | 6 | 70 | 75 | 3 | ||||
| 注冊 | 2 | 20 | 10 | 3 | 30 | 25 | ||||||
| 查詢 | 3 | 8 | 50 | 40 | 8 | |||||||
| 放入購物車 | 2 | 3 | 30 | 30 | 6 | |||||||
| 支付 | 1 | 25 | 20 | 5 | ||||||||
| 時間 | 2 | 4 | 6 | 8 | 10 | 12 | 14 | 16 | 18 | 20 | 22 | 24 |
本文轉自hblxp32151CTO博客,原文鏈接:http://blog.51cto.com/starpoint/1314059,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的论“性能需求分析”系列专题(二)之 常用的性能需求获取方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用栈结构完毕四则运算
- 下一篇: 当前主流、最新技术回眸(四)