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

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

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

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

    關注性能:壓力負載

    發布: 2010-6-17 14:26 | 作者: 不詳 | 來源: 領測測試網采編 | 查看: 84次 | 進入軟件測試論壇討論

    領測軟件測試網

      關注性能:壓力負載    軟件測試 

         壓力測試及為項目選擇正確的工具所要考慮的因素

      級別:初級

      優化大師 Jack Shirazi 和 Kirk Pepperdine 分別是 JavaPerformanceTuning.com 的董事和首席技術官,他們從事全球 Internet 上的性能問題討論。在 TheServerSide.com 留言板上最近提出了一些關于壓力測試和負載測試的問題。Jack 和 Kirk 詳細探討了這一主題,并討論了正確的工具如何導致結果產生巨大的差別。

      TheServerSide.com 討論板通常是相當活躍的,所以這個月我們駐步于此以了解在性能世界中發生了什么事情。討論板的名字就是 TheServerSide,所以在這里討論的性能集中于 J2EE 系統是很正常的。當然,這是一個相當廣泛的題目,因為它包含了 Java 平臺中的幾乎所有內容——連 J2ME 系統常常也是 J2EE 系統的客戶機,所以有時您甚至可以遇到關于優化 J2ME 系統的問題。

      壓力測試和負載測試

      在性能列表中最常問的問題是:“是否有一種工具可以幫助我對 J2EE 應用程序進行壓力測試?” 在回答這個問題之前,讓我們問一問自己:壓力測試是什么,為什么這些開發人員需要它?(我相信你們中相當一部分人曾經遇到一定要在昨天完成測試這種讓您感到壓力的情況,但是我們在這里說的不是這個)。壓力測試是為了發現在什么條件下您的應用程序的性能會變得不可接受。這通過改變應用程序的輸入以對應用程序施加越來越大的負載并測量在這些不同的輸入時性能的改變來實現的。這種操作也稱為負載測試,但是負載測試通常描述一種特定類型的壓力測試——增加用戶數量以對應用程序進行壓力測試。

      對應用程序進行壓力測試最簡單的方法是手工改變輸入(客戶機數量、需求大小、請求的頻率、請求的混合程度,等等)并描繪性能的變化。對于一些應用程序,您需要做的就是這些。但是如果有許多輸入,或者需要在大的范圍內改變輸入,那么就可能需要一個自動化的工具。另外,在手工測試中,如果想在進行一些改變后重新測試應用程序,可能很難精確地重復一組測試。如果是讓多個用戶測試您的應用程序,那么幾乎不可能一致性地運行手工測試,除非您有很多失業的朋友,否則擴大測試應用程序的用戶數量是非常困難的。

      沒有一刀切的方案

      不幸的是,沒有一種通用的壓力測試工具,因為每一個應用程序所接受的輸入以及對它們進行處理的方式都是不同的。但是對于許多 J2EE 應用程序來說,從客戶機到達服務器的通信使用的是 HTTP 協議。幸運的是,有許多負載測試工具可以以一種可控制和重復的方式模擬 HTTP 上的用戶活動。它們包括免費工具如 Apache JMeter、The Grinder 以及 PushToText,和相當昂貴的工具如 Mercury Astraload。一般來說一分錢一分貨——工具越貴,它能做的事情就越多。為了了解它們的差別,我們首先來看最基本的負載測試工具能做些什么。

      如果您想構建自己的負載測試工具,那么您會首先編寫一個對每一個模擬客戶機運行一個線程的程序。每一個線程需要與服務器通信,可能使用 java.net.URL 類。這種方法使您得到基本的 HTTP 客戶機模擬,它可以執行 GET 和 PUT。每個線程需要做的就是發送 HTTP 請求、收集回復、等待一些時間(模擬“考慮時間”),再重復。這一組行動可以相當容易地抽象到一個單獨的配置文件中。很快,您就得到一個基本的負載測試工具。您可能需要增加一些配置選項以確定運行多少個線程(模擬的客戶機)以及它們是同時開始還是慢慢增加負載。當然,您需要對與服務器的交互計時,因為這是您要測試的核心內容。

      如果這么簡單……

      那么,對于處理擴展的交互(即一個請求取決于上一個請求的結果)如何呢?對于處理 cookies 如何呢?cookies 對于許多面向會話的 J2EE 系統是必不可少的。改變數據輸入呢?如果 J2EE 應用程序客戶機需要處理一些 JavaScript 以進入下一次通信呢?在收集了響應時間數據后,如何對它進行分析?其他類型的監視,如 CPU 時間、網絡使用、堆大小、分頁活動或者數據庫活動呢?

      像這樣和其他的功能,如用于記錄瀏覽器會話并將它們加入到測試腳本中的工具,是高端負載測試工具與基本工具的差別所在。如何為自己選擇正確的工具呢?當然,這取決于您的需要、您的計劃和您的預算。最重要的是,您需要使用可以正確地模擬您的應用程序要求的客戶瀏覽器功能的工具。具備了基本功能后,可以考慮工具的生產率。一般來說,包含的分析工具越多,可以記錄的性能數據類型越多,您可以達到的生產率就越高——您愿意付的錢也就越多。頂級的負載測試程序可以模擬多個瀏覽器,與大多數應用服務器集成,收集多個服務器主機的性能數據(包括操作系統、JVM 和數據庫統計數字),生成可以在以后用高級的分析工具分析的數據集。另一方面,低端負載測試程序是免費的。在那些預算有限的日子里,“免費”的意義是不言自明的。

      圖 1 展示了免費的負載測試程序 Apache JMeter,它顯示了一個自動記錄的腳本。

    延伸閱讀

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

    TAG: 負載 性能 壓力

    31/3123>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(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>