一、Jmeter的介紹
jmeter是apache公司基于java開發的一款開源壓力測驗工具,體積小,功能全,使用方便,是一個比較輕量級的測驗工具,使用起來非常簡 單,因為jmeter是java開發的,所以運行的時候必須先要安裝jdk才可以,jmeter是免安裝的,拿到安裝包之后直接解壓就可以使用,同時它在 linux/windows/macos上都可以使用,
??jmeter可以做介面測驗和壓力測驗,其中介面測驗的簡單操作包括做http腳本(發get/post請求、加cookie、加header、加權 限認證、上傳檔案)、做webservice腳本、引數化、斷言、關聯(正則運算式提取器和處理json-json path extractor)和jmeter操作資料庫等等,
二、安裝Jmeter
1、安裝Jmeter的前提條件是電腦必須配置好Java的環境變數
檢查是否配置了jdk,cmd命令中輸入java -version 查看,如果出現版本號就是已經安裝并配置了
配置環境變數的步驟:
①、下載并安裝jdk
②、右鍵計算機屬性->高級系統設定->系統屬性->高級->環境變數->在系統變數中添加如下的變數:
變數名:JAVA_HOME
變數值:D:\Program Files\Java\jdk1.8.0_92(jdk安裝路徑)
變數名:path
變數值:\;%JAVA_HOME%\bin;
變數名:CLASSPATH
變數值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
③、添加完成后點擊確定保存,然后打開cmd命令輸入java -version查看,出現相應的版本號就是已經配置成功

2、下載好的Jmeter檔案夾解壓后即可直接使用,在解壓后的bin目錄下打開jmeter.bat即可使用

3、Jmeter的目錄結構
/bin
目錄(常用檔案介紹)
examples
:目錄下包含
Jmeter
使用實體
ApacheJMeter.jar
:
JMeter
原始碼包
jmeter.bat
:
windows
下啟動檔案
jmeter.sh
:
Linux
下啟動檔案
jmeter.log
:
Jmeter
運行日志檔案
jmeter.properties
:
Jmeter
組態檔
jmeter-server.bat
:
windows
下啟動負載生成器服務檔案
jmeter-server
:
Linux
下啟動負載生成器檔案
/docs
目錄
——Jmeter
幫助檔案
/extras
目錄
——
提供了對
Ant
的支持檔案,可也用于持續集成
/lib
目錄
——
存放
Jmeter
依賴的
jar
包,同時安裝插件也放于此目錄
/licenses
目錄
——
軟體許可檔案,不用管
/printable_docs
目錄
——Jmeter
用戶手冊
三、Jmeter的基本用法
1、創建一個執行緒組
2、設定執行緒數
作用
:
模擬虛擬用戶
行程: 一個正在執行的程式對應一個行程
執行緒: 一個行程有多個執行執行緒
執行緒組: 按照執行緒性質對執行緒分組
三者關系: 一個行程有多個執行緒組,一個執行緒組有多個執行緒

①執行緒組主要包含三個引數:執行緒數、準備時長
(Ramp-Up Period(in seconds))
、回圈次數,
②
執行緒數:虛擬用戶數,一個虛擬用戶占用一個執行緒,設定多少虛擬用戶數在這里也就是設定多少個執行緒數,
③
準備時長(秒):設定的虛擬用戶數需要多長時間全部啟動,如果執行緒數為
20
,準備時長為
10
,那么需要
10
秒鐘啟動
20
個執行緒,也就是每秒鐘啟動
2
個執行緒,
④
回圈次數:每個執行緒發送請求的次數,如果執行緒數為
20
,回圈次數為
100
,那么每個執行緒發送
100
次請求,總請求數為
20*100=2000
,如果勾選了
“
永遠
”
,那么所有執行緒會一直發送請求,一到選擇停止運行腳本,
⑤調度器:設定執行緒組啟動的開始時間和結束時間
(
配置調度器時,需要勾選回圈次數為永遠
)
⑥
持續時間(秒):測驗持續時間
⑦
啟動延遲(秒):測驗延遲啟動時間
3、sampler(采樣器)
作用:向服務器發送請求,記錄回應資訊,記錄回應時間的最小單元(http,https,ftp,jdbc等)


一個
HTTP
請求有著許多的配置引數:
名稱:本屬性用于標識一個取樣器,建議使用一個有意義的名稱,
注釋:對于測驗沒有任何作用,僅用戶記錄用戶可讀的注釋資訊,
服務器名稱或
IP
:
HTTP
請求發送的目標服務器名稱或
IP
地址,
埠號:目標服務器的埠號,
方法:發送
HTTP
請求的方法,可用方法包括
GET
、
POST
、
HEAD
、
PUT
、
OPTIONS
、
TRACE
、
DELETE
等,
Content encoding
:內容的編碼方式,默認值為
iso8859
路徑:目標
URL
路徑
(
不包括服務器地址和埠
)
4、監聽器
作用
:
監聽器可以動態的監控
JMeter
測驗執行的程序
,
實時查看測驗結果
通程序看結果樹,我們可以看到每個請求的結果,其中紅色的是出錯的請求,綠色的為通過
Thread Name
:執行緒組名稱
Sample Start:
啟動開始時間
Load time
:加載時長
Latency
:等待時長
Size in bytes
:發送的資料總大小
Headers size in bytes
:發送資料的其余部分大小
Sample Count
:發送統計
Error Count
:互動錯誤統計
Response code
:回傳碼
Response message
:回傳資訊
Response headers
:回傳的頭部資訊
lable
:對應每一個
http
請求,顯示的是
http
請求的
Name
,如百度
http
請求
name
為
baidu
#Samples
:表示這一次的測驗中一共發出了多少請求,如上圖所示,
sougou
和
baidu
的
http
請求
每個都發出
30
個請求
Average
:平均回應時間,指的是所有的請求的平均回應時間,如上圖的
30
個請求的總的回應時間
除以
30
得出的平均回應時間,默認的情況下是單個請求的平均回應時間,但當使用了
“
事務控制器
”
時,則以事物為單位顯示平均回應時間
Median
:中位數,也就是
50%
用戶的回應時間
90%Line
:
90%
用戶的回應時間
Min
:最小回應時間
Max
:最大的回應時間
Error%
:本次測驗中出現錯誤的請求的數量
/
請求的總數,如上圖所示,本次的測驗中,
sougou
的
http
請求
66.6%
的請求出錯,而
baidu
的請求則沒有出錯的請求
Throughput
:吞吐量,默認情況下表示每秒完成的請求數,如上圖所示,每秒完成的請求數分別
為
6.6
個每秒,
6.2
個每秒
Recived KB/Sec
:每秒從服務器端接收到的資料量,以
kb
為計算的單位
四、Jmeter組件描述
①、
測驗計劃是使用
JMeter
進行測驗的起點,它是其它
JMeter
測驗元件的容器,
②、執行緒組:代表一定數量的并發用戶,它可以用來模擬并發用戶發送請求,
③、取樣器(
Sampler
):模擬各種請求,所有實際的測驗任務都由取樣器承擔,存在很多種請求, 如:HTTP
、
ftp
請求等等,
④、監聽器:負責收集測驗結果,同時也被告知了結果顯示的方式,功能是對取樣器的請求結果顯
示、統計一些資料(吞吐量、
KB/S……
)等,
⑤、斷言:用于來判斷請求回應的結果是否如用戶所期望,是否正確,非常實用
⑥、定時器:負責定義請求(執行緒)之間的延遲間隔,模擬對服務器的連續請求,
⑦、邏輯控制器:允許自定義
JMeter
發送請求的行為邏輯,它與
Sampler
結合使用可以模擬復雜的
請求序列,
⑧、
配置元件維護
Sampler
需要的配置資訊,并根據實際的需要會修改請求的內容,
⑨、
前置處理器和后置處理器負責在生成請求之前和之后完成作業,前置處理器常常用來修改請求的
設定,后置處理器則常常用來處理回應的資料,
1、斷言
作用:斷言
(Assertions)
可以用來判斷回應的資料是否符合預期

2、json斷言

3、Xpath斷言
定義
:Xpath
即為
XML
路徑語言,它是一種用來確定
XML
檔案中某部分位置的語言,
xpath
基于
XML
的樹狀結
構,提供在資料結構樹中尋找節點的能力

區別:回應斷言(適用任何的回傳型別)
,json
斷言(只適用于
json
的回傳型別)
,Xpath Assertion
斷言
針對回傳資訊為
Xpath
的資料型別進行斷言
4、
定時器
定時器
(Timer)
負責定義請求之間的延遲間隔
5、事務控制器

6、http請求默認值(常用)
http請求默認值,會在發送http請求的時候,自帶這些引數,復用的作用
