讀萬卷書不如行千里路,經(jīng)驗(yàn)的積累又不是一蹴而就的,不但需要知識(shí)的沉積,還需要長(zhǎng)久經(jīng)驗(yàn)的總結(jié)升華

          常用鏈接

          統(tǒng)計(jì)

          積分與排名

          AJAX相關(guān)站點(diǎn)

          java壓力、性能等測(cè)試工具

          開源軟件基地

          最新評(píng)論

          使用JMeter進(jìn)行壓力測(cè)試

          JMeter是apache的jakarta上面的項(xiàng)目,用于軟件的壓力測(cè)試(Load?Test),不但可以對(duì)HTTP,也可以對(duì)數(shù)據(jù)庫(通過JDBC)、FTP、Web?Service、Java?對(duì)象等等進(jìn)行壓力測(cè)試。

          項(xiàng)目地址:http://jakarta.apache.org/jmeter

          使用:?運(yùn)行bin目錄下的jmeterw.bat,運(yùn)行jmeter.bat也可以,不過就會(huì)有一個(gè)命令窗口顯示。

          要提醒一下的是jmeter根據(jù)當(dāng)前系統(tǒng)的locale顯示菜單的語言,為了方便想設(shè)置回英文的話,可以修改jmeter.properties文件,設(shè)置language=en?(我下載的2.1.1版本把“退出”誤譯為“推出”,怎么看都不順眼?)

          使用:

          JMeter的測(cè)試計(jì)劃(Test?Plan)呈樹狀結(jié)構(gòu),樹里面有多種元素類型,樹狀結(jié)構(gòu)的元素之間有的是有繼承關(guān)系的(其原理有點(diǎn)類似log4j)。下面簡(jiǎn)述一下元素類型:

          1、ThreadGroup
          顧名思義就是線程組,測(cè)試必須有一個(gè)ThreadGroup元素作為基礎(chǔ)(否則就沒有測(cè)試線程在跑了),這個(gè)元素可以配置跑多少個(gè)線程、每個(gè)線程循環(huán)多少次,所有線程數(shù)的總啟動(dòng)時(shí)間(Ramp-up?period)等等。

          2、Controller
          包括Logical?Controller和Sampler,前者用來作一些邏輯上的控制,例如輪換、條件、循環(huán)等等。Sampler就是真正“干活”的“取樣器”,例如“HTTP?Request”,就是拿來執(zhí)行一個(gè)HTTP請(qǐng)求的。

          3、Listener
          Listener對(duì)請(qǐng)求過程進(jìn)行監(jiān)聽,可以簡(jiǎn)單理解為獲取結(jié)果的東東。例如Simple?Data?Writer,可以把結(jié)果寫到一個(gè)文本文件里(其實(shí)所有Listener都可以寫數(shù)據(jù)到文件里),還有View?Results?in?Table,就是把結(jié)果顯示在表格里。

          4、?Timer
          用來控制執(zhí)行流程中的時(shí)間延遲等功能。

          5、?Assertion
          斷言,加到Sampler里面可以對(duì)返回的結(jié)果進(jìn)行判斷,例如判斷HTTP返回結(jié)果里面是否含有某個(gè)字符串。如果斷言為真,JMeter會(huì)標(biāo)記請(qǐng)求為成功,否則標(biāo)記為失敗。

          6、?Configuration?Element
          配置用的元素,很有用。由于測(cè)試計(jì)劃是樹狀和有繼承關(guān)系的,可以在高層次指定一個(gè)Configuration?Element,低層次的相關(guān)Sampler如果沒有顯式地指定配置,就繼承高層次的配置信息。(跟log4j很像吧?)

          7、?Pre-Processor/Post-Processor?Elements?
          用來在Sampler運(yùn)行前和運(yùn)行后作一些預(yù)處理和后處理工作的。例如動(dòng)態(tài)修改請(qǐng)求的參數(shù)(預(yù)處理),從返回信息里面提取信息(后處理)等等。

          舉例:要做一個(gè)最簡(jiǎn)單的HTTP壓力測(cè)試:?用10個(gè)線程訪問一個(gè)URL,每個(gè)線程訪問100次。
          做法:
          1、?在Test?Plan下面加一個(gè)Thread?Group,配置里面,線程數(shù)填10,循環(huán)次數(shù)填100
          2、?在Thread?Group下面加一個(gè)HTTP?Request,這是一個(gè)Sampler,在它的配置里面填寫主機(jī)信息,端口、協(xié)議、路徑、參數(shù)等信息
          3、?在HTTP?Request下面加一個(gè)View?Results?in?Table,如果你想把記錄記到文件,則填寫文件路徑。
          4、?保存一些這個(gè)Test?Plan,就可以選擇Run菜單下面的Run來運(yùn)行了。直到Run菜單項(xiàng)從灰色變回黑色,就表示運(yùn)行完了。在View?Results?in?Table下面,你可以看到運(yùn)行結(jié)果。

          關(guān)于元素的詳細(xì)描述可以參考官方文檔。

          posted on 2006-04-04 13:33 劉軍偉 閱讀(931) 評(píng)論(1)  編輯  收藏 所屬分類: J2EE應(yīng)用相關(guān)工具

          評(píng)論

          # re: 使用JMeter進(jìn)行壓力測(cè)試 2014-03-12 14:00 11

          強(qiáng)大撒 啊撒  回復(fù)  更多評(píng)論   


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 青海省| 旅游| 丽水市| 积石山| 兴文县| 肃北| 垦利县| 云安县| 壤塘县| 崇文区| 全椒县| 泗洪县| 宁国市| 新乐市| 满城县| 德昌县| 巩义市| 邢台县| 固原市| 普格县| 黑河市| 潼关县| 邵武市| 那曲县| 林甸县| 玉林市| 南京市| 江永县| 廊坊市| 会昌县| 乌恰县| 丹东市| 新泰市| 井研县| 巴青县| 靖边县| 柞水县| 甘孜县| 纳雍县| 翁源县| 孝昌县|