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

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

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    衡量Web性能的方法

    發布: 2008-5-06 11:19 | 作者: 王翔 | 來源: 本站原創 | 查看: 42次 | 進入軟件測試論壇討論

    領測軟件測試網 衡量web服務器性能的唯一方式是對服務器進行壓力測試(stress testing)
    1. 自動壓力測試工具是衡量的唯一方式
    2. 瀏覽器的點擊刷新并不能作為痕量手段……
    l 收集多個典型應用場景方案:
    1. 在應用車工女婿執行過程中模擬典型事物處理的過程
    2. 痕量常用的單個頁面的性能(熱點)
    3. 確定個場景及個頁面的使用率
    l 通過測試找出系統的新能指標:
    1. 服務器的處理能力
    2. 確定適合可接受TTFB/TTLB響應時間范圍的可支持的最大客戶端負載(并發用戶)
    性能測試工具
    l 微軟Web Application Stress Tool
    1. 可免費下載(10MB),適用于XP、2000、2003
    2. http://www.microsoft.com/technet/treeview/default.aspx?url=/technet/itsolutions/intranet/downloads/webstres.asp
    l 微軟應用程序中心測試工具(Microsoft Application Center Test)
    1. 作為VS.NET Enterprise 的一部分提供給客戶
    2. 啟用更豐富的腳本及報告
    主要的性能測試觀測項PerfMon Counters
    l Processor,CPU % Utilization
    Low numbers = blocking or lock contention
    l ASP.NET,Requests In Application Queue
    出現線型增長時表示服務器已達滿負荷
    l ASP.NET,Applications,Requests/Sec
    動態吞吐量(應保持一致、無大的波動)
    l ASP.NET,Applications,Errors Total
    預示著功能級錯誤(應為0)
    l ASP.NET App/Worker Process Restarts
    表示有嚴重錯誤編程級錯誤(應為0)
    壓力測試環境的注意事項
    l 在獨立與Web服務器及應用服務器的機器上運行壓力測試工具
    1. 否則工具將超出服務器CPU的最大范圍
    2. 對于繁重的負載使用多個客戶端機器
    l 對測試進行配置,以模擬不同的客戶端帶寬級別
    1. 特定用于衡量56K撥號
    l 消除應用之外的任何瓶剄:
    1. 網絡、客戶端等
    邏輯設計
    l 建議:采用3層邏輯模型
    1. Pages and User Controls UI
    2. Business and Data Access classes in \bin dir
    3. Data withwin a SQL Database via SPROCs
    l 設計系統時要考慮到Scale-Out的情形
    1. 不要假設客戶端的請求
    l 永遠會返回到同一機器
    使用最佳的Data Provider
    l ADO.NET 可支持多個Provider:
    1. System.Data.SqlClient
    2. System.Data.OracleClient
    3. System.Data.OleDb
    4. System.Data.Odbc
    l 所有Provider的編程模型相同
    1. 但是性能方面存在明顯差異
    l 建議:使用最佳
    1. 在訪問MSDE/SQL 是始終使用SqlClient
    2. 在訪問Oracle時始終使用OracleClient
    DataReader vs.DataSets
    l DataReader
    1. 對查詢的結果提供了單向讀取的操作
    2. 輕量快速-但在Reader關閉之前數據庫始終處于連接狀態
    l DataSet
    1. 非連接的數據訪問方式
    2. 內部使用DataReader用戶獲取數據
    3. 在完成DataSet的獲取后會自動關閉DataReader
    l Which is better?
    1. 依賴于你的應用
    2. 原則上在Middle_Tier設計到大量數據處理或進行離線的數據訪問時建議使用DataSet
    連接池
    l ADO.NET擁有內置的連接遲
    1. 自動緩寸/重新使用連接
    2. 不必為此編寫任何代碼
    l 代碼建議
    1. “在后期打開代碼中的連接,然后在早期將其關閉”
    2. 切無長時間保持連接狀態 �C 切無嘗試構建你自己的“智能”連接池邏輯
    3. 完成后應立即顯示地關閉數據庫連接,以將其返回致池中
    l 優化提示:
    1. 不同的連接字符串可以生成多個不同的連接池
    2. 在Web.Config中存儲單個連接字符串
    3. 使用ConfigurationSettings.AppSettings以在運行時采用編程形式對其進行訪問
    4. 觀察”.NET CLR數據“性能計數器,以變對由ADP.NET維護的連接池數量保持
    使用存儲過程
    l 建議將SPROC用于數據存取
    1. 通過DBA進行更輕松的性能調試
    2. 通過使用數據庫事務處理避免出現分布事務成本
    3. 有助于防止SQL注入攻擊
    4. 有助與消除應用與數據庫反復調用的成本
    服務器控件
    l 對性能優化而言有兩點需要注意:
    1. ViewState
    2. Number of controls generated(especially for lists)
    ViewState管理
    l ASP.NET controls能夠維護頁面Control元素的狀態:
    1. 狀態以”viewstate” hidden field進行傳遞
    l 負面影響:
    1. 增加網絡負荷(both on render and postback)
    2. 額外的服務器性能消耗(serialize values to/from viewstate)
    l ViewState靈活性:
    1. 頁面級(Can disable viewstate entirely for a page)
    2. 控件級(Can disable viewstate usage on a per control basis)
    l 建議
    1. 認真審核該功能的使用
    2. 若不使用PostBack功能,在頁面級屏蔽ViewState
    3. PostBack時沒次都重新生成控件,請對控件級的ViewState屏蔽
    4. 使用<%@ Page Trace=”true”%>跟蹤ViewState的大小

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: web Web WEB 性能


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品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>