Apache JMeter是Apache組織開發(fā)的基于Java的壓力測試工具,它可以用于對服務器、網(wǎng)絡或?qū)ο竽M繁重的負載來測試它們的強度或分析不同壓力類型下的整體性能。
目錄
JMeter安裝配置
下載安裝
JMeter參數(shù)配置
默認配置
?內(nèi)存配置
JMeter運行
常用組件介紹
全局設置
HTTP Cookie管理器
HTTP緩存管理器
HTTP請求默認值
CSV數(shù)據(jù)文件設置
BeanShell預處理程序
測試主體
測試結(jié)果
查看結(jié)果樹
聚合報告
服務器性能監(jiān)控
JMeter安裝配置
下載安裝
方法一:訪問官網(wǎng) (opens new window),選擇apache-jmeter-5.3.zip,點擊下載后解壓
方法二:點擊此處 (opens new window)下載后解壓
JMeter參數(shù)配置
默認配置
啟動前需要對一些默認配置項進行修改,JMeter配置文件為/path/to/jmeter/bin/jmeter.properties,具體修改如下:
# JMeter默認的界面語言是英文,修改為中文
language=zh_CN
# 結(jié)果集輸出的字符集默認為ISO-8859-1,防止響應結(jié)果亂碼需要修改為UTF-8 sampleresult.default.encoding=UTF-8
提示: 運行jmeter之后,若以上配置未將語言修改為中文,則可使用以下方法進行JMeter語言修改
在菜單欄點擊Options>Choose Language>Chinese(Simplified)即可修改語言為中文
?內(nèi)存配置
當并發(fā)數(shù)量過多時,JMeter內(nèi)存配置不滿足此時并發(fā)需求,會導致請求出現(xiàn)異常使結(jié)果不正確。Windows下右鍵編輯/path/to/jmeter/bin/jmeter.bat,修改以下配置即可:
# 修改Xmx的值來增大JMeter內(nèi)存配置
set HEAP=-Xms1g -Xmx2g
JMeter運行
雙擊/path/to/jmeter/bin/jmeter.bat,即可運行JMeter
啟動后的界面如下
整體分3部分:
-
菜單欄
-
工具欄
-
操作界面(左:標簽 右:標簽信息)
提示: 在Windows測試端網(wǎng)絡或硬件性能受限的情況下,需要將錄制好的測試腳本放到同網(wǎng)段、高性能的服務器上運行
常用組件介紹
一個完整的測試計劃分為3部分:全局設置、測試主體和測試結(jié)果
?下面對這3部分常用的組件分別進行講解
全局設置
HTTP Cookie管理器
用于管理其范圍內(nèi)HTTP請求的Cookie,詳細介紹見官方文檔 (opens new window)。
HTTP緩存管理器
用于在其范圍內(nèi)向HTTP請求添加緩存功能,模擬瀏覽器緩存,詳細介紹見官方文檔 (opens new window)。
HTTP Cookie管理器和HTTP緩存管理器兩個配置元件只需要添加到測試計劃中即可,不需特殊設置。如果沒有這兩個配置元件,會導致登錄成功但是請求失敗的情況。
HTTP請求默認值
一般情況下,我們在一個項目中調(diào)用的接口中域名、端口等都是相同的。當我們創(chuàng)建多個HTTP請求時,由于這些數(shù)據(jù)是必填項,所以就需要多次填寫相同的數(shù)據(jù)。如果項目進行過程中出現(xiàn)了更改域名、更改端口號等情況,又需要把每一個請求中的數(shù)據(jù)都做更改,所以需要配置HTTP請求默認值將這些相同的參數(shù)設置為默認值,詳細介紹見官方文檔 (opens new window)。
下圖是HTTP請求默認值的配置界面,需要配置被測試項目地址的請求協(xié)議、請求IP、端口號
CSV數(shù)據(jù)文件設置
從外部文件中讀取變量值,用于變量的參數(shù)化,詳細介紹見官方文檔 (opens new window)。
下圖是CSV數(shù)據(jù)文件設置的配置界面,此處讀取記錄了測試用戶名/密碼的外部CSV文件,并賦值給user、password變量
需要配置的選項:
-
文件名:數(shù)據(jù)文件的路徑
-
文件編碼:數(shù)據(jù)文件編碼
-
變量名稱:定義變量讀取數(shù)據(jù)文件中的內(nèi)容,后續(xù)可以使用${變量名}來引用
BeanShell預處理程序
在請求發(fā)送之前執(zhí)行BeanShell程序,處理一些復雜的數(shù)據(jù),詳細介紹見官方文檔 (opens new window)。
例如下圖,將csv文件中讀取的用戶名和密碼先拼接為json格式,再將json使用base64加密,最后將加密值儲存到"key"變量中,作為登錄接口POST請求的消息體數(shù)據(jù)
?
import org.apache.commons.net.util.Base64;
String user = vars.get("user");
String psw = vars.get("password");
StringBuffer buf = new StringBuffer();
buf.append("{\"user\":\"").append(user).append("\",\"password\":\"").append(psw).append("\"}");
String json = buf.toString();
byte[] encodedBytes = Base64.encodeBase64(json.getBytes("UTF-8"));
String encoded = new String(encodedBytes);
vars.put("key", encoded);
測試主體
測試主體包括訪問測試項目(數(shù)據(jù)模型、儀表板、報表等)的整個過程,在線程組中通過執(zhí)行HTTP請求實現(xiàn),可以分為登錄、操作、注銷三個事務,其中登錄、注銷在模板中已經(jīng)給出,只需要按照實際情況修改部分參數(shù);操作可以使用JMeter的錄制功能來實現(xiàn),下面以錄制訪問首頁看板為例介紹具體步驟:
1.在線程組中添加事務控制器,名稱為訪問首頁看板
?
2.在測試計劃中添加非測試元件-HTTP代理服務器,設置目標控制器為步驟1中創(chuàng)建的訪問首頁看板
?
3.點擊啟動,運行時不要關閉Recorder:Transactions Control對話框,否則會影響錄制請求的結(jié)果
4.通過Internet屬性-局域網(wǎng)設置設置系統(tǒng)代理服務器,由于HTTP代理服務器的工作原理是攔截并記錄系統(tǒng)代理發(fā)出的請求,因此端口號需要保持與JMeter中的HTTP代理服務器組件設置一致
5.此時,在瀏覽器中所有操作的請求都會記錄在訪問首頁看板控制器中。在瀏覽器輸入首頁看板的地址,回車進行訪問,可以發(fā)現(xiàn)事務控制器中已記錄了訪問該儀表板過程中的所有請求
?提示: JMeter不會記錄被緩存的HTTP請求,因此在訪問被測試對象前,請清理瀏覽器緩存
測試結(jié)果
查看結(jié)果樹
查看結(jié)果樹中展示了每一個取樣器的結(jié)果、請求信息和響應信息,可以查看這些內(nèi)容去分析腳本是否存在問題,詳細介紹見官方文檔 (opens new window)。
?
聚合報告
對于每個請求,聚合報告統(tǒng)計響應信息并提供請求數(shù),平均值,最大,最小值,錯誤率,大約吞吐量(以請求數(shù)/秒為單位)和以kb/秒為單位的吞吐量,詳細介紹見官方文檔 (opens new window)。
聚合報告名詞解釋如下:
-
樣本:發(fā)送到服務器的樣本數(shù)目
-
平均值:平均響應時間(毫秒ms)
-
中位數(shù):響應時間中位數(shù),即有一半的服務器響應時間低于該值而另一半高于該值
-
90%百分位:90%的請求的響應時間(毫秒ms),即90%請求響應時間不會超過該時間
-
95%百分位:95%的請求的響應時間(毫秒ms),即95%請求響應時間不會超過該時間,與90%Line結(jié)合能夠較好的反映實際情況下絕大多數(shù)用戶的響應等待,非常有意義
-
99%百分位:99%的請求的響應時間(毫秒ms),即99%請求響應時間不會超過該時間
-
最小值:響應最小時間(毫秒ms)
-
最大值:響應最大時間(毫秒ms)
-
異常%:出錯率=錯誤的請求的數(shù)量/請求的總數(shù);
-
吞吐量:每秒完成的請求數(shù)
-
接收KB/sec:每秒接收的字節(jié)數(shù)
-
發(fā)送KB/sec:每秒發(fā)送的字節(jié)數(shù)
服務器性能監(jiān)控
在性能測試時,了解加載的服務器的健康狀況是很重要的。使用jp@gc-PerfMon Metrics Collector插件,可以監(jiān)控所有平臺的CPU,內(nèi)存,交換,磁盤I/O和網(wǎng)絡I/O,詳細介紹見官方文檔 (opens new window)。
配置方法如下
服務器端:
-
點擊此處 (opens new window)下載ServerAgent.zip,上傳到服務器
-
運行unzip ServerAgent-2.2.3.zip解壓
-
在ServerAgent-2.2.3目錄下執(zhí)行nohup ./startAgent.sh &即可,默認端口為4444
提示: 如果端口號被其他服務占用可以進行修改
執(zhí)行如下命令
vim startAgent.sh
添加--udp-port xxxx --tcp-port xxxx參數(shù),例如修改端口為7777,文件內(nèi)容為java -jar $(dirname $0)/CMDRunner.jar --tool PerfMonAgent --udp-port 7777 --tcp-port 7777"$@"
測試端:
-
點擊此處 (opens new window)下載plugins-manager.jar,放置/path/to/jmeter/lib/ext下
-
重啟JMeter,在菜單欄中點擊選項,打開Plugins Manager,切換到Avaliable Plugins標簽頁,勾選PerfMon(Servers Performance Monitoring),點擊Apply Changes and Restart JMeter
3.重新啟動后即可在監(jiān)聽器中找到jp@gc-PerfMon Metrics Collector
?
配置界面如下圖所示,在Servers to Monitor表格中配置服務器ip、ServerAgent服務端口號、監(jiān)聽類型即可
更多精彩:
官網(wǎng):山川軟件
示例DEMO地址:https://demo.succbi.com/
產(chǎn)品文檔地址:SuccBI產(chǎn)品文檔 | 山川軟件產(chǎn)品文檔
DEMO體驗版下載地址:4.20.x版本發(fā)行日志 | 山川軟件產(chǎn)品文檔文章來源:http://www.zghlxwxcb.cn/news/detail-613331.html
B站視頻地址:SuccBI的個人空間_嗶哩嗶哩_Bilibili文章來源地址http://www.zghlxwxcb.cn/news/detail-613331.html
到了這里,關于JMeter安裝配置及使用說明【最全面】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!