目錄
簡(jiǎn)單介紹:
下載與安裝
下載地址
mac 版本
windows版本
linux版本
壓測(cè)使用
HTTP協(xié)議GET請(qǐng)求
添加線程組
?編輯添加取樣器
?GET請(qǐng)求 填寫壓測(cè)地址信息
添加觀察壓測(cè)結(jié)果項(xiàng)
添加查看結(jié)果樹(shù)?
?添加聚合報(bào)告
配置壓測(cè)信息
參數(shù)介紹
5個(gè)線程 壓測(cè) 20000次樣例
5個(gè)線程 壓測(cè) 30秒樣例
HTTP協(xié)議POST請(qǐng)求
開(kāi)始?jí)簻y(cè)工作
?需要注意
點(diǎn)擊?綠色三角運(yùn)行
?查看結(jié)果樹(shù)
查看聚合報(bào)告
提前停止運(yùn)行
linux 安裝與執(zhí)行
代碼樣例
簡(jiǎn)單介紹:
? ? ? ? 簡(jiǎn)單理解為是一個(gè)壓測(cè)工具。
????????壓力測(cè)試是目前大型網(wǎng)站系統(tǒng)的設(shè)計(jì)和開(kāi)發(fā)中不可或缺的環(huán)節(jié),通常會(huì)和容量預(yù)估等工作結(jié)合在一起,穿插在系統(tǒng)開(kāi)發(fā)的不同方案。壓力測(cè)試可以幫助我們及時(shí)發(fā)現(xiàn)系統(tǒng)的性能短板和瓶頸問(wèn)題,在這個(gè)基礎(chǔ)在上再進(jìn)行針對(duì)性的性能優(yōu)化,也可以幫助我們預(yù)估系統(tǒng)的承載能力,使我們能根據(jù)其做出一些應(yīng)對(duì)措施。
????????JMeter是一個(gè)使用JAVA開(kāi)發(fā)的Apache開(kāi)源軟件,用于軟件的性能評(píng)估和壓力測(cè)試。它最初是為測(cè)試Web應(yīng)用程序而設(shè)計(jì)的,但此后又?jǐn)U展到其他測(cè)試功能。 ? ?
????????JMeter可用于靜態(tài)和動(dòng)態(tài)資源、Web動(dòng)態(tài)應(yīng)用程序的性能測(cè)試,例如:HTTP、 HTTPS、LDAP、TCP、FTP、SMTP、POP3、IMAP、Shell腳本、數(shù)據(jù)庫(kù)、Java 對(duì)象,也可以用于對(duì)服務(wù)器、服務(wù)器組、網(wǎng)絡(luò)或?qū)ο笊系木薮筘?fù)載,以測(cè)試在不同強(qiáng)度的壓力測(cè)試下它們的強(qiáng)度和整體性能。 ? ?
????????另外,JMeter還可以對(duì)應(yīng)用程序做功能回歸測(cè)試,通過(guò)創(chuàng)建帶有斷言的腳本來(lái)驗(yàn)證你的程序是否返回了你期望的結(jié)果。為了最大限度的靈活性,JMeter還支持使用正則表達(dá)式創(chuàng)建斷言。?
下載與安裝
下載地址
ApachepI:? JMeter - Download Apache JMeter
在Binaries下面根據(jù)自己需求選擇。 linux或者mac選擇tgz,Windows選擇zip?
?下載后直接解壓,tgz 與 zip 不同版本解壓的結(jié)構(gòu)是差不多的
需要安裝 jdk1.8,因?yàn)镴Meter運(yùn)行時(shí)需要jdk,下面給了一個(gè)連接。
JDK安裝教程(有圖詳解)_叼著奶瓶瓶敲代碼的博客-CSDN博客
關(guān)于JMeter環(huán)境配置(可不配,直接在bin目錄下運(yùn)行執(zhí)行文件,配置環(huán)境變量打開(kāi)會(huì)方便點(diǎn))
1)桌面上選擇“我的電腦”(右鍵),高級(jí), 環(huán)境變量, 在“系統(tǒng)變量”—>“新建”, 在變量名中輸: JMETER_HOME,變量值中輸入:D:\apache-jmeter-5.5
2)再修改CLASSPATH變量,變量值中添加%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;% JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-1.2.jar; 然后確定即可。
若不配置環(huán)境變量
mac 版本
選中文件 ctrl + c,打開(kāi)終端 ctrl + v 點(diǎn)擊回車即可?
windows版本
可以直接雙擊執(zhí)行文件
啟動(dòng)成功界面,后面的使用 mac 與Windows 都是一樣的
界面默認(rèn)是英文,可以配置中文
打開(kāi) \apache-jmeter-5.5\bin\jmeter.properties 第39行左右,改為?language=zh_CN
?
重啟JMeter,語(yǔ)言已切換為中文
linux版本
一般情況下由于linux沒(méi)有jmeter得操作界面,需要直接上傳Windows版本或Mac版本操作界面保存的jmx文件,所以最后在講完操作界面后再做描述,有經(jīng)驗(yàn)的小伙伴可以直接翻到文章底部去看linux環(huán)境的安裝預(yù)使用。
壓測(cè)使用
HTTP協(xié)議GET請(qǐng)求
添加線程組
添加取樣器
?GET請(qǐng)求 填寫壓測(cè)地址信息
添加觀察壓測(cè)結(jié)果項(xiàng)
查看結(jié)果樹(shù):每條請(qǐng)求的記錄
聚合報(bào)告:吞吐量(tps)、平均耗時(shí)等數(shù)據(jù)
添加查看結(jié)果樹(shù)?
?添加聚合報(bào)告
配置壓測(cè)信息
接下來(lái)配置 多少個(gè)線程 壓測(cè)多時(shí)間或者壓測(cè)多少次,點(diǎn)擊線程組
默認(rèn)如圖
參數(shù)介紹
線程數(shù):多少個(gè)并發(fā)
Ramp-up(秒)?:一般都是1,代表1秒內(nèi)把線程都啟動(dòng),不用管這個(gè)參數(shù)
循環(huán)次數(shù):執(zhí)行多少次,比如跑10萬(wàn)筆 或者跑 100萬(wàn)筆
如果想壓測(cè)多少分鐘
循環(huán)次數(shù)勾選 永遠(yuǎn)
點(diǎn)擊調(diào)度器? 持續(xù)時(shí)間(秒) 寫上壓測(cè)時(shí)間
啟動(dòng)延遲(秒):多少秒后開(kāi)始?jí)簻y(cè)工作,一般都不需要這個(gè)
5個(gè)線程 壓測(cè) 20000次樣例
配置如下圖
5個(gè)線程 壓測(cè) 30秒樣例
配置如下圖
HTTP協(xié)議POST請(qǐng)求
?與 GET請(qǐng)求類似?
post json 提交需要修改兩點(diǎn)
增加信息頭
添加需要的請(qǐng)求頭信息
?2.請(qǐng)求的json 放進(jìn)消息體數(shù)據(jù)中
開(kāi)始?jí)簻y(cè)工作
?需要注意
一個(gè)線程組下配置多個(gè)請(qǐng)求,點(diǎn)擊運(yùn)行時(shí),所有請(qǐng)求都會(huì)執(zhí)行,如果不想執(zhí)行其它的,就先禁用 ,有一個(gè)切換的按鈕,禁用/啟用 切換
點(diǎn)擊?綠色三角運(yùn)行
第一次執(zhí)行時(shí)會(huì)提示你保存配置文件,方便后續(xù)再次執(zhí)行,每次執(zhí)行前,清理一下上次執(zhí)行的結(jié)果數(shù)據(jù),點(diǎn)擊 stop 旁邊 兩個(gè)掃把的按鈕。
點(diǎn)擊 yes ,?起個(gè)名字,點(diǎn)擊保存,方便下次直接使用
執(zhí)行效果如圖
?查看結(jié)果樹(shù)
查看結(jié)果是否返回正常,紅色是失敗,綠色是成功
查看聚合報(bào)告
比較重要的幾個(gè)參數(shù)
樣本 :跑了多少筆交易
平均值:每筆交易平均耗時(shí)
異常%:失敗率
吞吐量:tps
提前停止運(yùn)行
點(diǎn)擊 stop 按鈕
每次執(zhí)行前,清理一下上次執(zhí)行的結(jié)果數(shù)據(jù),點(diǎn)擊 stop 旁邊 兩個(gè)掃把的按鈕
linux 安裝與執(zhí)行
1.把壓縮包放到指定位置解壓
2.配置環(huán)境變量
修改配置文件
vi /etc/profile
輸入 i 進(jìn)入編輯模式
加入下面兩行,路徑根據(jù)個(gè)人情況
export JMETER_HOME=/home/ftpuser/apache-jmeter-5.4.3
export PATH=${JMETER_HOME}/bin:$PATH
刷新環(huán)境變量
source /etc/profile
查看Jmeter是否安裝成功
jmeter -v
配置成功會(huì)顯示對(duì)于版本
3.執(zhí)行命令
jmeter -n -t 壓測(cè)腳本路徑 -l 指定輸出文件路徑
如下
jmeter? ? -n? ? -t? ? /home/nccs/apache-jmeter-5.4.3/jmx/cs-500.jmx? ? -l? ? /home/nccs/apache-jmeter-5.4.3/jtl/500.jtl
第一個(gè)路徑是要執(zhí)行的jmx文件,第二個(gè)文件是結(jié)果報(bào)告存放的結(jié)果jtl文件
解釋一下jmeter 的兩種文件 ?
一個(gè)是jmx結(jié)尾,是jmeter生成的請(qǐng)求文件,也就是上面提到保存的文件
一個(gè)是jtl,是jmeter生成的結(jié)果文件,每次壓測(cè)文件需要重新指定,
4.jmter打開(kāi)jtl文件
在查看結(jié)果樹(shù)中導(dǎo)入打開(kāi)是顯示每條記錄的詳情
在聚合報(bào)告中導(dǎo)入打開(kāi)是顯示壓測(cè)指標(biāo)結(jié)果文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-755335.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-755335.html
代碼樣例
package com.example.pressdemo;
import org.springframework.web.bind.annotation.*;
@RequestMapping("/test")
@RestController
public class HelloWorld {
@GetMapping("/helloworld")
public String helloworld() {
//模擬業(yè)務(wù)耗時(shí)
int a = 0;
for (int i = 0; i < 10000; i++) {
for (int m = 0; m < 10000; m++) {
a ++ ;
}
}
return "helloworld";
}
@PostMapping("/sayHello")
public String sayHello(@RequestParam("name") String name) {
//模擬業(yè)務(wù)耗時(shí)
int a = 0;
for (int i = 0; i < 10000; i++) {
for (int m = 0; m < 10000; m++) {
a ++ ;
}
}
return "你好:" + name;
}
@PostMapping("/sayGoodBye")
public String sayGoodBye(@RequestBody Person person) {
//模擬業(yè)務(wù)耗時(shí)
int a = 0;
for (int i = 0; i < 10000; i++) {
for (int m = 0; m < 10000; m++) {
a ++ ;
}
}
return "再見(jiàn):" + person.name;
}
}
到了這里,關(guān)于壓測(cè)工具JMeter——安裝與使用(Windows、Mac、Linux)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!