表 1。 對應于給定的置信區間(confidence interval)的標準偏差范圍(Standard deviation range)
表 2。 對應于給定的標準偏差范圍(Standard deviation)的置信區間(confidence interval)
置信區間(Confidence interval)
置信區間(confidence interval)的定義是[取樣平均值- Z*σ/√n, 取樣平均值+ Z*σ/√n]。 例如, 如果置信區間(概率)是90%, 經查找可知Z 值是1。645, 于是置信區間是 [取樣平均值- 1。645*σ/√n, 取樣平均值+ 1。645*σ/√n], 這意味著在90%的時間里, 總體平均值(population mean)(是未知的) 會落入這個置信區間內。 也是說, 我們的測試結果是十分接近的。 如果 σ(標準偏差) 更大一些, 置信區間也會更大,這意味著置信區間的上限會更可能會越過可以接受的范圍,即σ 越大,結果越不可信。
響應時間需求(Response-time requirements )
現在我們把所有的信息都歸結到響應時間需求上來。首先。必須要定義性能需求,如: %95概率的置信區間的平均響應時間的上限必須小于5秒。 當然,好有相應的需求或場景。
在性能測試結束后,假設進分析得出結論是平均響應時間是4.5秒,標準偏差時4.9秒,樣本數量是120個,然后可以計算%95概率的置信區間了。 通過查表1,找到Z值是 1。95996。 于是置信區間是 [4.5 – 1.95996*4.9/√120, 4.5 + 1.95996*4.9/√120], 也是 [3.62, 5.38]。 盡管看起來這個響應時間看起來很不錯,但這個結果(因為超出了需求的要求,因而)是不可接受的。 實際上, 可以檢驗的是即使是對于80%概率的可信區間,這個測試結果也是不能接受的。正如你所看到的,使用了置信區間分析后,會得到一個十分精確的方法來估算測試質量。
在web應用中,為了測定某一場景的響應時間,我們一般要通過測試工具來發送多個訪問請求,例如:
4. 登陸
5. 顯示表單
6. 提交表單
假設我們對請求3更感興趣。為進行置信區間分析,我們需要的僅是請求3的所有樣本的響應時間均值和標準偏差,而不是全部被統計的樣本的。
在Jmeter的圖表結果監聽器中計算的卻是全部請求的響應時間均值和標準偏差。 而Jmeter的聚合報告監聽器計算的是獨立的采樣器的響應時間均值,可惜沒有計算標準偏差。
總之, 僅僅指定響應時間均值是危險的, 因為不能反映出數據的變化。 即使響應時間均值是可以接受的,但是置信區間僅有75%,這個結果也不能令人信服。但是,使用置信區間分析還是會帶來更多的確定性。
結論
本文討論了以下內容:
·詳細講解了Jmeter 線程組在加載負載時的特別設置
·使用Jmeter代理服務器(Proxy Server)元件自動建立測試腳本的指導方針,其重點在于模擬用戶思考時間(user think time )。
·置信區間分析(Confidence interval analysis), 一種我們可以用來更好地滿足響應時間需求的統計分析方法
通過使用本文提及的技術可以改善測試腳本的質量,更廣泛地說,本文所討論的內容屬于是性能測試的一個工作流程的一部分, 是其中的一個較困難的部分。性能測試包括并不于以下內容:
·編寫性能測試需求
·選擇測試情景
·準備測試環境
·編寫測試腳本
·執行測試
·回顧測試腳本和測試結果
·指出性能瓶頸
·書寫測試報告
此外, 性能測試結果,包括確定下來的瓶頸, 都需要反饋給開發團隊或者架構師進行優化設計。 在這個過程中,并寫測試腳本和回顧測試腳本是其中很重要的部分,要精心籌劃和管理實施。憑借測試腳本指導和一個好的性能測試流程,你將會有更多的機會來在較重負載下優化軟件性能。
關于作者
Chi-Chang Kung 是臺灣Sun 公司的java系統架構師,也是IEEE 和ACM的成員。
相關資源
·JMeter: http://jakarta.apache.org/jmeter/index.html
·《中心極限理論以及經典推論》("Central Limit Theorem and Classical Inference" )Scott M。 Lynch (2005年2月): http://www.princeton.edu/~slynch/clt_inference.pdf
·置信區間(Confidence intervals):http://people.hofstra.edu/faculty/Stefan_Waner/RealWorld/finitetopic1/confint.html
·《java網站的性能分析》(Performance Analysis for Java Websites), Stacy Joines et al. (Addison-Wesley, 2002年9月; ISBN: 0201844540): http://www.amazon.com/exec/obidos/ASIN/0201844540/javaworld
·《響應時間:三個重要的限制條件》("Response Times: The Three Important Limits") 引自《實用工程學》( Usability Engineering), Jakob Nielsen (Morgan Kaufmann, 1994; ISBN 0125184069): http://www.useit.com/papers/responsetime.html
·一些提供了正態曲線計算功能的網站(Websites for normal curve calculation):
o http://www.psychstat.smsu.edu/introbook/normal.htm
o http://www.ecositebr.bio.br/curva_normal.htm
o http://statistik.wu-wien.ac.at/mathstat/hatz/vo/applets/probCalc/normal_z_p.html
·更多關于測試的文章,請參照JavaWorld's 標題索引的Testing 部分: http://www.javaworld.com/channel_content/jw-testing-index.shtml
·關于JAVA開發工具,參見JavaWorld's 標題索引的Development Tools 部分: http://www.javaworld.com/channel_content/jw-tools-index.shtml