[TOC]
* 建立測試計劃 啟動jmeter后,jmeter會自動生成一個空的測試計劃,用戶可以基于該測試計劃建立自己的測試計劃。
<br>
<br>
>[success] ## 一:添加線程組
一個性能測試請求負載是基于一個線程組完成的。一個測試計劃必須有一個線程組。測試計劃添加線程組非常簡單。在測試計劃右鍵彈出下拉菜單(添加-->Threads(Users)--->線程組)中選擇線程組即可。
jmeter中 每個測試計劃至少需要包含一個線程組,當然也可以在一個計劃中創建多個線程組,那么多個線程組之間又會怎樣的順序執行(串行還是并行)?在測試計劃下面多個線程是并行執行的,也就是說這些線程組是同時被初始化并同時執行線程組下的Sampler的。
:-: 
:-: 
線程組主要包含三個參數:線程數、準備時長(Ramp-Up Period(in seconds))、循環次數。
**線程數:** 虛擬用戶數。一個虛擬用戶占用一個進程或線程。設置多少虛擬用戶數在這里也就是設置多少個線程數。
**準備時長:** 設置的虛擬用戶數需要多長時間全部啟動。如果線程數為20 ,準備時長為10 ,那么需要10秒鐘啟動20個線程。也就是每秒鐘啟動2個線程。
**循環次數:** 每個線程發送請求的次數。如果線程數為20 ,循環次數為100 ,那么每個線程發送100次請求。總請求數為20\*100=2000 。如果勾選了“永遠”,那么所有線程會一直發送請求,直到選擇停止運行腳本。
設置合理的線程數對于能否達到測試目標有決定性的影響。除了上面介紹的固定循環次數與永遠外;也可以靈活的選擇設定測試運行時間。勾選“調度器”,進行調度器配置。
* 設置:線程數為10,其它參數默認。
<br>
<br>
>[success] ## 二:添加HTTP請求
* * *
添加完成線程組后,在線程組上右鍵菜單(添加--->Sampler--->HTTP請求)選擇HTTP請求。對于jmeter來說,取樣器(Sampler)是與服務器進行交互的單元。一個取樣器通常進行三部分的工作: ``` 1、向服務器發送請求
2、記錄服務器的響應數據
3、記錄響應時間信息
:-: 
:-: 
<br>
一個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方法發送,默認不選中。
* 在這里我們添加一個HTTP請求
<br>
<br>
>[success] ## 三:添加監聽器(Listener)
腳本的主要部分設置完成后,需要通過某種方式獲得性能測試中的測試結果,在本例中,我們關心的是請求的響應時間。
Jmeter 中使用監聽器元件收集取樣器記錄的數據并以可視化的方式來呈現。Jmeter有各種不同的監聽器類型,因為上面添加的為HTTP請求,這里添加聚合報告,更為直觀的查看測試結果。
添加聚合報告,右鍵點擊線程組,在彈的菜單(添加--->監聽器--->聚合報告)中選擇聚合報告
:-: 
點擊工具欄上的`綠色運行按鈕`或者通過菜單欄(運行--->啟動)來運行測試。
查看**聚合報告** 的運行結果
:-: 
**Label:** 請求的名稱,就是我們在進行測試的httprequest sampler的名稱
**Samples:** 總共發給服務器的請求數量
**Average:** 單個請求的平均響應時間,單位是毫秒
**Median:** 50%的請求的響應時間
**90%Line:** 90%的請求的響應時間
**95%Line:** 95%的請求的響應時間
**99%Line:** 99%的請求的響應時間
**Min:** 最小的響應時間
**Max:** 最大的響應時間
**Error%:** 錯誤率=錯誤的請求的數量/請求的總數
**Throughput:** 吞吐量即表示每秒完成的請求數
**Received KB/sec:** 每秒從服務器端接收到的數據量
**Sent KB/Sec:** 每秒從發送到服務器端的數據量