• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 淺談基于c/s結構的應用程序的性能測試

    發表于:2008-04-15來源:作者:點擊數: 標簽:
    淺談基于 c/s 結構的應用程序的 性能測試 雖然 B/S 結構愈來愈成為流行模式,但基于 C/S 結構的應用程序還廣泛地應用于各種行業。對于某些應用軟件,其承受大用戶量并發訪問的能力常常是應用者重點考慮的一個方面。最好的方法是用 測試工具 來模擬多個客戶端

    淺談基于c/s結構的應用程序的性能測試

    雖然B/S結構愈來愈成為流行模式,但基于C/S結構的應用程序還廣泛地應用于各種行業。對于某些應用軟件,其承受大用戶量并發訪問的能力常常是應用者重點考慮的一個方面。最好的方法是用測試工具來模擬多個客戶端同時訪問服務器,并使用性能監測工具獲得關于服務器、數據庫等用戶關心的性能指標。中國軟件評測中心在多年的測試歷程中,使用過多種性能測試工具,而對于C/S結構的應用程序,也總結了不少性能測試經驗和方法。下面以中國軟件評測中心經常用到的一種壓力測試工具QALoad為例,說明這類性能測試需要注意的地方。

    1、首先分析壓力測試中最容易出現瓶頸的地方,從而有目的地調整測試策略或測試環境,使壓力測試結果真實地反映出軟件的性能。例如,服務器的硬件限制、數據庫的訪問性能設置等常常會成為制約軟件性能的重要因素,但這些因素顯然不是用戶最關心的,我們在測試之前就要通過一些設置把這些因素的影響調至最低。

    2、測試腳本至關重要。對于某些應用,如ADO、ODBC等等,QALoad可以錄制/回放腳本,這給測試工作帶來極大的便利,但用這樣采集來的腳本直接作為壓力測試的腳本往往會導致錯誤的結果。我們需要對原始的腳本進行修改,根據應用程序的實際情況和用戶可能的操作情況調整腳本的結構,從而使腳本更符合實際情況。比如,我們錄制一個用戶登錄、操作和注銷的過程,實際情況是多數用戶只登錄一次,然后進行多次操作,這時我們只需在腳本中把登錄和注銷部分轉至循環(即腳本中的Transaction部分)外即可。

    3、選用不同的加載策略可以反映不同狀況下的性能。QALoad可采用的策略有:

    1)并發用戶數和每個模擬用戶運行的事務數都為固定值;

    2)并發用戶按固定的時間間隔遞增,每個模擬用戶數運行的事務數不限;

    3)以類似于批處理的方式順序運行不同并發數的模擬用戶,每個模擬用戶運行的事務數固定;

    4)并發用戶數固定,運行事務數不限,在一定的時間范圍內持續運行腳本,然后手動停止;

    5)不同模擬用戶運行不同的腳本,模擬真實的訪問情況。

    另外,QALoad還提供設置數據變量和數據池,設置操作之間的間歇時間等功能,我們在運

    行腳本時可以充分利用這些策略和功能。

    4、尋求多種性能指標的獲取方法。由QALoad本身提供的性能指標是每個“檢查點”的響應時間,這些響應時間可以通過統計分析以獲得更直觀的結果,如平均響應時間、響應時間方差等等,但這些遠遠不能滿足我們壓力測試的需要。對于基于Windows系列平臺的應用,QALoad可以添加Windows服務捕獲的性能指標,前提是在服務器上安裝QALoadAgent組件并啟動服務器上的SNMP等服務。對于如UNIX的其他平臺,我們可以借助專用性能監測工具,如MAX、EcoTool,以獲取更有價值的性能數據。

    大多數性能測試,特別是基于C/S結構的應用軟件的性能測試只有借助于測試工具才能完成,另一方面,也需要測試工程師靈活的運用才能讓測試工具充分發揮作用。ompuware公司在其新版本的壓力測試工具QALoad4.8.1中,開始全面支持中文平臺。這意味著用戶可以在中文操作系統下錄制、編譯和測試中文應用系統的性能。通過與Compuware的優秀性能監控管理工具Server Vantage的集成,構成了一套完整的應用性能測試解決方案 ,從而填補了中文環境下應用性能測試的空白

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>