版權聲明:本文能夠被轉載,可是在未經本人許可前,不得用於任何商業用途或其餘以盈利爲目的的用途。本人保留對本文的一切權利。如需轉載,請在轉載是保留此版權聲明,並保證本文的完整性。也請轉貼者理解創做的辛勞,尊重做者的勞動成果。html
做者:陳雷 (Jackei)數據庫
郵箱:jackeichan@gmail.com網絡
Blog:http://jackei.cnblogs.com併發
本文是《LoadRunner沒有告訴你的》系列的第六篇,我將繼續保持「無廢話」的原則,用盡量簡潔、明確的語句來表述我對性能測試的見解和經驗。在這篇文章中,咱們要討論的是如何獲取「有效的」性能需求。性能
一個實際的例子測試
爲了便於你們的理解,咱們先來看一個性能需求的例子,讓你們有一個感性的認識,本文後面的討論也會再次提到這個例子。網站
這是一個證券行業系統中某個業務的「實際需求」——其實是我根據經過網絡蒐集到的數據杜撰出來的,不過看起來像是真實的 ^_^日誌
l 系統總容量達到日委託6000萬筆,成交9000萬筆htm
l 系統處理速度每秒7300筆,峯值處理能力達到每秒10000筆blog
l 實際股東賬號數3000萬
這個例子中已經包括幾個明確的需求:
l 最佳併發用戶數需求:每秒7300筆
l 最大併發用戶數需求:峯值處理能力達到每秒10000筆
l 基礎數據容量:實際股東賬號數3000萬
l 業務數據容量:日委託6000萬筆,成交9000萬筆——能夠根據這個推算出每週、每個月、每一年系統容量的增加模型
什麼是「有效的」性能需求?
要想得到有效的性能需求,就要先了解什麼樣的需求是「有效的」。有效的性能需求應該符合如下三個條件。
1. 明確的數字,而不是模糊的語句。
結合上面的例子來看,相信這個應該不難理解。可是有的時候有了數字未必就不模糊。例如常見的一種需求是「系統須要支持5000用戶」,或者「最大在線用戶數爲8000」。這些有數字的需求仍然不夠明確,由於還須要考慮區分系統中不一樣業務模塊的負載,以及區分在線用戶和併發用戶的區別。關於這方面的內容,在下面兩篇文章中的留言內容中有精彩的討論:
http://www.cnblogs.com/jackei/archive/2006/11/15/560578.html
http://www.cnblogs.com/jackei/archive/2006/11/16/561846.html
2. 有憑有據,合理,有實際意義。
一般來講,性能需求要麼由客戶提出,要麼由開發方提出。對於第一種狀況,要保證需求是合理的,有現實意義的,不能由着客戶使勁往高處說,要讓客戶明白性能是有成本的。對於第二種狀況,性能需求不能簡單的來源於項目組成員、PM或者測試工程師的估計或者猜想,要保證性能需求的提出是有根據的,所使用的數據和計算公式是有出處的——本文後面的部分會介紹得到可用的數據和計算公式的方法。
3. 相關人員達成一致。
這一點很是關鍵。若是相關人不能對性能需求達成一致,可能測了也白測——特別是在客戶沒有提出明確的性能需求而由開發方提出時。這裏要注意「相關人員」的識別,一般項目型的項目的須要與客戶方的項目經理或負責人進行確認,產品型的項目須要與直屬領導或者市場部進行確認。若是實在不知道該找誰確認,那就把這個責任交給你的直屬領導;若是你就是領導了,那這領導也白當了 ^_^
如何得到有效的性能需求
上面提到了「有效的」性能需求的一個例子和三個條件,下面來咱們將看到有哪些途徑能夠幫助咱們得到相關的數據——這些方法我在實際的工做中都用過,而且已經被證明是可行的。這幾種方法由易到難排列以下:
1. 客戶方提出
這是最理想的一種方式,一般電信、金融、保險、證券以及一些其餘運營商級系統的客戶——特別是國外的客戶都會提出比較明確的性能需求。
2. 根據歷史數據來分析
根據客戶以往的業務狀況來分析客戶的業務量以及每一年、每個月、每週、天天的峯值業務量。若是客戶有舊的系統,能夠根據已有系統的訪問日誌,數據庫記錄,業務報表來分析。要特別注意的是,不一樣行業、不一樣應用、不一樣的業務是有各自的特色的。例如,購物網站在平時的負載主要集中在晚上,可是節假日時訪問量和交易量會是平時的數倍;而地鐵的售票系統面臨的高峯除了週末,還有周一到週五的一早一夜下班時間。
3. 參考歷史項目的數據
若是該產品已有其餘客戶使用,而且規模相似的,能夠參考其餘客戶的需求。例如在線購物網站,或者超市管理系統,各行業的進銷存系統。
4. 參考其餘同行相似項目的數據
若是本企業沒有作過相似的項目,那麼能夠參考其餘同行企業的公佈出來的數據——一般在企業公佈的新聞或者成功解決方案中會提到,包括系統容量,系統所能承受的負載以及系統響應能力等。
5. 參考其餘相似行業應用的數據
若是沒法找打其餘同行的數據,也能夠參考相似的應用的需求。例如作IPTV或者DVB計費系統的測試,能夠參考電信計費系統的需求——雖然不能徹底照搬數據,可是能夠經過其餘行業成熟的需求來了解須要測試的項目有哪些,應該考慮到的狀況有哪些種。
6. 參考新聞或其餘資料中的數據
最後的一招,特別是對於一些當前比較引人關注的行業,涉及到所謂的「政績」的行業,一般能夠經過各類新聞媒體找到一些可供參考的數據,可是須要耐心的尋找。例如咱們在IPTV和DVB系統的測試中,能夠根據新聞中公佈的各省、各市,以及國外各大運營商的用戶發展狀況和用戶使用習慣來估算系統容量和系統各個模塊的併發量。
又一塊磚拋出來了,但願你們在看完以後也有更多的玉丟過來 ^_^