<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經轉移至github,大家請訪問 http://qaseven.github.io/

    JMeter基礎之一 一個簡單的性能測試

    上一節中,我們了解了jmeter的一此主要元件,那么這些元件如何使用到性能測試中呢。這一節創建一個簡單的測試計劃來使用這些元件。該計劃對應的測試需求。

    1)測試目標網站是fnng.cnblogs.com  和 tt-topia.rhcloud.com

    2)測試目的是該網站在負載達到20 QPS 時的響應時間。

     

    QPS 解釋

      QPS : Query Per Second 每秒查詢率。是一臺查詢服務器每秒能夠處理的查詢次數。在因特網上,作為域名系統服務器的機器的性能經常用每秒查詢率來衡量。

     

      為了達成預期的測目的,需要需要在jmeter中建立一個測試計劃。因為本次測試僅要求完成對fnng.cnblogs.com  和 tt-topia.rhcloud.com 兩個博客首頁請求,因此只需要使用HTTP Request Sampler 即可。

     

    建立測試計劃

       啟動jmeter后,jmeter會自動生成一個空的測試計劃,用戶可以基于該測試計劃建立自己的測試計劃。

     

    添加線程組


     

        一個性能測試請求負載是基于一個線程組完成的。一個測試計劃必須有一個線程組。測試計劃添加線程組非常簡單。在測試計劃右鍵彈出下拉菜單(添加-->Threads(Users)--->線程組)中選擇線程組即可。

       jmeter中 每個測試計劃至少需要包含一個線程組,當然也可以在一個計劃中創建多個線程組,那么多個線程組之間又會怎樣的順序執行(串行還是并行)?在測試計劃下面多個線程是并行執行的,也就是說這些線程組是同時被初始化并同時執行線程組下的Sampler的。

     

     

       線程組主要包含三個參數:線程數、準備時長(Ramp-Up Period(in seconds))、循環次數。

    線程數:虛擬用戶數。一個虛擬用戶占用一個進程或線程。設置多少虛擬用戶數在這里也就是設置多少個線程數。

    準備時長: 設置的虛擬用戶數需要多長時間全部啟動。如果線程數為20 ,準備時長為10 ,那么需要10秒鐘啟動20個線程。也就是每秒鐘啟動2個線程。

    循環次數:每個線程發送請求的次數。如果線程數為20 ,循環次數為100 ,那么每個線程發送100次請求。總請求數為20*100=2000 。如果勾選了“永遠”,那么所有線程會一直發送請求,一到選擇停止運行腳本。

      設置合理的線程數對于能否達到測試目標有決定性的影響。在本例中,要求得到網站首頁在20 QPS 負載情況下的響應時間,如果如果線程數量設置的過小,則很可能無法達到設定的QPS要求。另外,設置合理的循環次數也很重要,除了上面介紹的固定循環次數與永遠外;也可以靈活的選擇設定測試運行時間。勾選“調度器”,進行調度器配置。

     

     

    添加HTTP請求


     

      添加完成線程組后,在線程組上右鍵菜單(添加--->Sampler--->HTTP請求)選擇HTTP請求。對于jmeter來說,取樣器(Sampler)是與服務器進行交互的單元。一個取樣器通常進行三部分的工作:

    向服務器發送請求

    記錄服務器的響應數據

    記錄相應時間信息

       一個HTTP請求有著許多的配置參數,下面將詳細介紹:

    名稱:本屬性用于標識一個取樣器,建議使用一個有意義的名稱。

    注釋:對于測試沒有任何作用,僅用戶記錄用戶可讀的注釋信息。

    服務器名稱或IP :HTTP請求發送的目標服務器名稱或IP地址。

    端口號:目標服務器的端口號,默認值為80 。

    協議:向目標服務器發送HTTP請求時的協議,可以是http或者是https ,默認值為http 。

    方法:發送HTTP請求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。

    Content encoding :內容的編碼方式,默認值為iso8859

    路徑:目標URL路徑(不包括服務器地址和端口)

    自動重定向:如果選中該選項,當發送HTTP請求后得到的響應是302/301時,JMeter 自動重定向到新的頁面。

    Use keep Alive : 當該選項被選中時,jmeter 和目標服務器之間使用 Keep-Alive方式進行HTTP通信,默認選中。

    Use multipart/from-data for HTTP POST :當發送HTTP POST 請求時,使用Use multipart/from-data方法發送,默認不選中。

    同請求一起發送參數 : 在請求中發送URL參數,對于帶參數的URL ,jmeter提供了一個簡單的對參數化的方法。用戶可以將URL中所有參數設置在本表中,表中的每一行是一個參數值對(對應RUL中的 名稱1=值1)。

    同請求一起發送文件:在請求中發送文件,通常,HTTP文件上傳行為可以通過這種方式模擬。

    從HTML文件獲取所有有內含的資源:當該選項被選中時,jmeter在發出HTTP請求并獲得響應的HTML文件內容后,還對該HTML進行Parse 并獲取HTML中包含的所有資源(圖片、flash等),默認不選中,如果用戶只希望獲取頁面中的特定資源,可以在下方的Embedded URLs must match 文本框中填入需要下載的特定資源表達式,這樣,只有能匹配指定正則表達式的URL指向資源會被下載。

    用作監視器:此取樣器被當成監視器,在Monitor Results Listener 中可以直接看到基于該取樣器的圖形化統計信息。默認為不選中。

    Save response as MD5 hash? :選中該項,在執行時僅記錄服務端響應數據的MD5值,而不記錄完整的響應數據。在需要進行數據量非常大的測試時,建議選中該項以減少取樣器記錄響應數據的開銷。

     

      在這里我們添加兩個HTTP請求,分別用于對fnng.cnblogs.com  和 tt-topia.rhcloud.com發送請求。

     

    設置QPS限制


     

     

      本次性能測試的需求中提到測試的目的是“了解博客的首頁在負載達到20 QPS時的響應時間”,因此需要控制向博客首頁發送請求的負載為20QPS。

      一種可行的方法是逐步調整測試計劃中的線程計算的數量以及為取樣器(Sampler)添加定時器(Timer),以使HTTP取樣器發出的請求的QPS保持在20個左右。但這種方法耗時耗力,需要經過多次嘗試才能達到;另一方法,完全通過設置定時器來控制QPS,一旦取樣器的響應時間發生改變(網絡環境發生改變),就需要重新調整定時器的等待時間。

      Jmeter提供了一個非常有用的定時器,稱為Constant Throughput Timer (常數吞吐量定時器),該定時器可以方便地控制給定的取樣器發送請求的吞吐量。

      右鍵點擊fnng.cnblogs.com ,彈出菜單(添加--->定時器--->Constant Throughput Timer)選擇Constant Throughput Timer

    Constant Throughput Timer 的主要屬性介紹:

    名稱 :定時器的名稱

    Target throughput(in samples per minute):目標吞吐量。注意這里是每分鐘發送的請求數,因此,對應測試需求中所要求的20 QPS ,這里的值應該是1200 。

    Calculate Throughput based on :有5個選項,分別是:

      This thread only :控制每個線程的吞吐量,選擇這種模式時,總的吞吐量為設置的 target Throughput 乘以矣線程的數量。

      All active threads : 設置的target Throughput 將分配在每個活躍線程上,每個活躍線程在上一次運行結束后等待合理的時間后再次運行。活躍線程指同一時刻同時運行的線程。

      All active threads in current thread group :設置的target Throughput將分配在當前線程組的每一個活躍線程上,當測試計劃中只有一個線程組時,該選項和All active threads選項的效果完全相同。

      All active threads (shared ):與All active threads 的選項基本相同,唯一的區別是,每個活躍線程都會在所有活躍線程上一次運行結束后等待合理的時間后再次運行。

      All cative threads in current thread group (shared ):與All active threads in current thread group 基本相同,唯一的區別是,每個活躍線程都會在所有活躍線程的上一次運行結束后等待合理的時間后再次運行。

     

      如上圖,該元件僅作用于fnng.cnblogs.com ,設置定時器的Target throughput為1200/分鐘(20 QPS),設置Calculate Throughput based on 的值為All active threads 。

      當然,Constant Throughput Timer只有在線程組中的線程產生足夠多的request 的情況下才有意義,因此,即使設置了Constant Throughput Timer的值,也可能由于線程組中的線程數量不夠,或是定時器設置不合理等原因導致總體的QPS不能達到預期目標。

     

     

    添加監聽器(Listener)


     

       腳本的主要部分設置完成后,需要通過某種方式獲得性能測試中的測試結果,在本例中,我們關心的是請求的響應時間。

      Jmeter 中使用監聽器元件收集取樣器記錄的數據并以可視化的方式來呈現。Jmeter有各種不同的監聽器類型,因為上HTTP請求,我們可在添加聚合報告,更為直觀的查看測試結果。

      添加聚合報告,右鍵點擊線程組,在彈的菜單(添加--->監聽器--->聚合報告)中選擇聚合報告。

     

     

    運行腳本


     

      添加完成聚合報告后,我們來運行腳本,稍后介紹聚合報告的參數。

      在運腳本之前,我們來查看一下,各個元件的參數設置:

    --------------------------------------------------------------- 

    線程組:

    線程數:20

    準備時長: 10

    循環次數:10

    ---------------------------------------------------------------  

    HTTP請求:

    名稱:fnng.cnblogs.com。

    服務器名稱或IP :fnng.cnblogs.com

    端口號:80 

    Implementation : java 

    協議: http

    方法: GET

    路徑:/

    ---------------------------------------------------------------  

    常數吞吐量定時器:

    Target throughput(in samples per minute):1200.0

    Calculate Throughput based on :All active threads

    ---------------------------------------------------------------  

    點擊工具欄上的運行按鈕,或者點擊菜單欄“ 運行--->啟動 ” 或者使用快捷鍵ctrl+r 來運行程序。

     

     

    聚合報告分析


     

    查看聚合報告的運行結果:

     

     OK! 到此一次完整的性能測試結束,如果你從中有所收獲,推薦一記~!

    posted on 2014-03-13 13:04 順其自然EVO 閱讀(492) 評論(0)  編輯  收藏 所屬分類: jmeter

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 99久久这里只精品国产免费| 免费国产成人α片| 日韩视频免费一区二区三区| 亚洲国产精品综合久久久| 亚欧日韩毛片在线看免费网站| 国产成人亚洲精品青草天美| 国产精品偷伦视频观看免费| 亚洲成人动漫在线| 91福利视频免费| 亚洲另类视频在线观看| 99久久免费国产精品特黄| 亚洲色成人网站WWW永久四虎| 好男人看视频免费2019中文 | 国产亚洲综合成人91精品| 成人毛片100免费观看| 亚洲色成人中文字幕网站| 久久青草免费91观看| 亚洲春色另类小说| 最好免费观看韩国+日本| 成人免费网站视频www| 九月丁香婷婷亚洲综合色| 免费视频成人片在线观看| 亚洲mv国产精品mv日本mv| 在线免费观看韩国a视频| 精品人妻系列无码人妻免费视频| 亚洲va无码专区国产乱码| 国内精品免费麻豆网站91麻豆| 亚洲色大成网站www永久男同 | 免费无码肉片在线观看| 亚洲av色香蕉一区二区三区| 国产午夜亚洲精品国产成人小说| 国内少妇偷人精品视频免费| 亚洲w码欧洲s码免费| 亚洲精品岛国片在线观看| 日本免费大黄在线观看| 亚洲av无码专区在线电影天堂| 亚洲色精品vr一区二区三区| 日韩欧毛片免费视频| 国产免费A∨在线播放| 亚洲AV无码乱码麻豆精品国产| 又爽又高潮的BB视频免费看|