天天看點

做“準确”的性能測試

  “準确”有兩層含義:

  符合現實:你模拟的負載測試真的能反映實際運作的負載嗎?

  精确:你模拟測試中采集的度量資料足夠詳細、粒度夠小嗎?

  當然,借助于專業的壓力測試工具,隻要添加足夠多的monitor,“精确”應該不難,但“符合現實”嗎?以我作為過來人的經驗,大多數的壓力測試并不準确。為什麼這麼說,請往下看這張圖。

做“準确”的性能測試

  上圖是大多數人得到的一個典型的測試結果,看上去很美,但它不符合現實情況。你的計算機、測試腳本有足夠的耐心等待,但實際使用者沒有。在這個講究效率、資訊爆炸、社會高速運轉的現實世界是什麼樣呢?

做“準确”的性能測試

  另外使用者對網站的熟悉程度、網絡速度,甚至使用者的計算機水準,都會影響使用者的操作速度,進而對實際的負載形成不同的影響。

做“準确”的性能測試

  一個不準确的壓力測試會得出不準确的測試結果,對于一個重要的網站來講,這樣是非常危險的,會對決策層形成誤導。

  ×對網站容量評估過高:當實際的負載上來時,會出現問題(響應過慢甚至崩潰)

  ×對網站容量評估過低:會導緻不必要的浪費,包括不必要的硬體開支和資源浪費。

  是以,不準确的壓力測試“後果很嚴重”。

  由此可以得到,做準确的壓力測試是非常重要的,但如何才能做準确的壓力測試呢?

  本文開始即提出,“準确”有兩層含義,目前主要的問題還是“符合現實”,是以問題的關鍵是如何讓你的壓力測試符合現實情況。

  當然這裡的幾個問題其實不是那麼好回答,要做很多分析統計工作,這裡隻是簡單描述一下。如果被測系統是以前系統的更新,最好的方法就是從舊系統的運作日志中捕獲以前的運作資訊,比如原來系統使用的web server是iis的話,iis日志記錄了使用者通路系統的所有資訊。借助于專門的分析工具(webtrends等工具),導出分析iis日志,可以建立wus(web site usage signature)

  × page distribution

  —home page 26%、search 12%、product info 32%、order 4%

  × 平均和标準偏差統計情況

  —page size、hit per page、session duration ......

  有了以上的分析,你才知道如何設定腳本中think time、如何對腳本進行角色劃分、如何配置設定使用者執行對應的交易等等諸多細節。

  通過這種方法建立的測試腳本和測試場景,最符合實際負載的運作情況,進而可以得出有用的結論,否則你就是在浪費時間,浪費金錢。

  借用2004年看過的sunshinelius版主的一篇文章《讓loadrunner走下神壇》中的一句話:

  “我們無論在loadrunner前面加多少個“強大”、“智能”的形容詞,别忘了其最終修飾的隻是一個名詞-“工具”。《大話西遊》中相當精辟的論斷:官兵?最多也隻是個長了痔瘡的官兵!”

  如果你沒有把它用好,那它就是長了痔瘡的官兵。哈哈!!

本文出自seven的測試人生公衆号最新内容請見作者的github頁:http://qaseven.github.io/

繼續閱讀