Jmeter本身是不能夠展示內(nèi)存饰豺,cpu和吞吐量的嚣鄙,但是可以通過添加插件的方式來對jmeter添加這些功能
Jmeter常用插件介紹
JMeter之ServerAgent監(jiān)控資源
一、 數(shù)據(jù)庫壓測
1. 為什么要進行數(shù)據(jù)庫壓測
不斷給數(shù)據(jù)庫施加壓力鳍怨,驗證數(shù)據(jù)庫處理的性能
2. 如何進行數(shù)據(jù)庫壓測
測試的過程中呻右,我們經(jīng)常要對數(shù)據(jù)庫表數(shù)據(jù)進行查詢、修改鞋喇、添加等操作声滥。在用 JMeter 做性能或者接口等 測試時,也可以讓 JMeter 連接數(shù)據(jù)庫然后對數(shù)據(jù)庫數(shù)據(jù)進行相關(guān)操作确徙。下面先來學(xué)習(xí)如何使用 JMeter 連接 MySql 數(shù)據(jù)庫進行操作醒串。
2.1 JDBC配置
-
首先創(chuàng)建一個測試計劃和線程組执桌,然后在線程組下添加配置元件 JDBC Connection Configuration 。
-
接下來要對數(shù)據(jù)庫連接的配置項進行設(shè)置芜赌。
Variable Name for created pool: 創(chuàng)建池的變量名 仰挣。這個變量在后面介紹的 JDBC Request 請求中用到。
Max Number of Connections: 池中允許的最大連接數(shù)缠沈。在大多數(shù)情況下膘壶,將其設(shè)置為零(0),這意味 著每個線程都將擁有自己的池洲愤,其中只有一個連接颓芭,即線程之間不共享連接。如果您真的想使用共享池柬赐,那么 將 max count 設(shè)置為與線程數(shù)量相同亡问,以確保線程不會彼此等待。
Max Wait(ms):在試圖檢索連接的過程中超過了超時時間肛宋,則池會拋出一個錯誤 州藕。
Time Between Eviction Runs (ms):在被逐出的時間間隔(ms)。在空閑對象驅(qū)逐線程之間運行的毫 秒數(shù)酝陈。當(dāng)非正的時候床玻,就不會運行無用的對象驅(qū)逐線程(默認(rèn)為"60000",1分鐘) 沉帮。
Auto Commit:將自動提交或關(guān)閉連接到連接上 锈死。
transaction isolation:事務(wù)隔離 。這個默認(rèn)即可穆壕,具體用法暫時還沒有研究過待牵,會的可以分享一下。
Test While Idle :測試池的空閑連接 粱檀,后面的驗證查詢將用于測試它洲敢。
Soft Min Evictable Idle Time(ms) :軟Min可驅(qū)逐空閑時間(ms) 。在它有資格被閑置的對象驅(qū) 逐者強制驅(qū)逐之前茄蚯,一個連接可能閑置在池中压彭,并且至少在池中存在空閑連接的額外條件,默認(rèn)值為5000(5 秒) 渗常。
Validation Query :驗證查詢 壮不。一個簡單的查詢,用來確定數(shù)據(jù)庫是否仍在響應(yīng)皱碘。 這個驗證查詢在池創(chuàng) 建中使用询一,即使“空閑測試”建議查詢只在空閑連接上使用,也可以驗證它。
Database URL:數(shù)據(jù)鏈接url健蕊,格式:jdbc:mysql://localhost:3306/host 注釋:數(shù)據(jù)庫的ip地址+端口/數(shù)據(jù)庫名(查詢數(shù)據(jù)庫端口號show global variables like 'port') jdbc:mysql://127.0.0.1:3306/mydb2?serverTimezone=UTC& allowMultiQueries=true
JDBC Driver class :JDBC驅(qū)動程序類 菱阵。MySql 選擇 com.mysql.jdbc.Driver Username :連接數(shù)據(jù)庫的用戶名。
Password:連接數(shù)據(jù)庫的密碼缩功。
2.2 設(shè)置完成后晴及,接下來在線程組下創(chuàng)建一個 JDBC Request 請求。
接著在 JMeter 中添加一個查看結(jié)果樹監(jiān)聽器嫡锌,運行一次腳本虑稼。
2.3 select statement
- 只支持單條查詢,只支持第一條數(shù)據(jù)查詢
//如果多條會報錯势木,修改蛛倦,但是仍然只能查詢到一條數(shù)據(jù)
allowMultiQueries=true
2.4 updata statement
- 修改數(shù)據(jù)
//首先修改查詢類型Updata S、tatement
updata stu set name="大飛" where id=1;
- 新增數(shù)據(jù)
//首先修改查詢類型updata statement
insert into
- 同時新增支持和修改語句
- 支持多條語句啦桌,但是select只能放最后一行
2.5 Callable Statement
- 支持查詢溯壶、修改
- 支持多個查詢
2.6 Prepared Select Statement
注意:類型必須為varchar
-
結(jié)合CSV處理多條查詢
創(chuàng)建文件數(shù)據(jù):添加CSV數(shù)據(jù)文件設(shè)置,并編寫對應(yīng)的變量:
引用變量值${id}
結(jié)合函數(shù)助手多條查詢
創(chuàng)建文件編寫數(shù)據(jù)
在選項中添加函數(shù)助手甫男,選擇csvread函數(shù)茸塞,填寫路徑索引,拿到對應(yīng)的字符串
講拿到的字符串當(dāng)成值進行傳遞
二查剖、 jmeter對服務(wù)器壓測(Windows)
在使用Jmeter工具進行性能測試或者壓力測試的時候要對服務(wù)器的資源進行監(jiān)控,如cup的使用情況噪窘、服務(wù)器的內(nèi)存資源等笋庄,這個時候我們就需要配置一下相關(guān)插件進行監(jiān)控。
1. 資源準(zhǔn)備
插件:JMeterPlugins-Extras.jar倔监、JMeterPlugins-Standard.jar
將JMeterPlugins-Extras.jar和JMeterPlugins-Standard.jar放到apache-jmeter-3.0\lib\ext目錄下
服務(wù):ServerAgent-2.2.1
2. 先在服務(wù)器上開啟server的監(jiān)聽
3. 給服務(wù)器(用本地數(shù)據(jù)庫模擬服務(wù)器)添加監(jiān)聽器-jp@gc - PerfMon Metrics Collector
4. 添加性能指標(biāo)直砂,線程組設(shè)置線程數(shù)和時間
二、 jmeter對服務(wù)器壓測(Linux)
很多服務(wù)都是部署在Linux上 的浩习,所以我們要在Linux上做服務(wù)器壓測静暂。
1. 資源準(zhǔn)備
將JMeterPlugins-Extras.jar和JMeterPlugins-Standard.jar放到apache-jmeter-3.0\lib\ext目錄下
將ServerAgent-2.2.1放到linux服務(wù)器opt目錄下,并解壓unzip
2. 環(huán)境準(zhǔn)備
ServerAgent服務(wù)端口號默認(rèn)為4444谱秽,需要設(shè)置防火墻對此端口不攔截:
開放Linux的對外訪問的端口4444
/sbin/iptables -I INPUT -p tcp --dport 4444 -j ACCEPT
/etc/rc.d/init.d/iptables save ---將修改永久保存到防火墻中
3. 然后在服務(wù)器中啟動監(jiān)控服務(wù)
./startagent.sh
4. 修改JDBC Connection Configuration中配置
本地地址改為遠程地址