- 性能測試
- Jmeter實時監控+SpringBoot接口性能實戰
- 自動化
- SpringBoot
- Java
Jmeter實時監控+SpringBoot接口性能實戰
一、實驗目的及實驗環境
1.1、實驗目的
通過springboot編寫基於HTTP請求的get、post接口與jmeter集成進行壓力測試。實現最新版本influxdb、grafana實時監控性能測試數據。本次實驗所用用到的工具和編寫的接口代碼都會百度雲鏈接分享給大家。
1.2、實驗環境
工具 |
版本 |
IntelliJ IDEA |
2017.2.7 |
mysql |
8.0.15 |
InfluxDB |
1.7.7 |
Grafana |
6.2.5-1 |
Linux |
CentOS release 6.5 (Final) |
Jmeter |
5.1.1 |
二、InfluxDB 簡介
InfluxDB 是用Go語言編寫的一個開源分布式時序、事件和指標數據庫,無需外部依賴。
類似的數據庫有Elasticsearch、Graphite等。
2.1、其主要特色功能
-
- 基於時間序列,支持與時間有關的相關函數(如最大,最小,求和等)
- 可度量性:你可以實時對大量數據進行計算
- 基於事件:它支持任意的事件數據
2.2、InfluxDB的主要特點
-
- 無結構(無模式):可以是任意數量的列
- 可拓展的
- 支持min, max, sum, count, mean, median 等一系列函數,方便統計
- 原生的HTTP支持,內置HTTP API
- 強大的類SQL語法
- 自帶管理界面,方便使用
三、InfluxDB安裝
3.1、查看系統版本
cat /proc/version
cat /etc/issue
查看結果如圖所示:
3.2、RedHat & CentOS安裝命令
Linux輸入如下下載命令:
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.7.x86_64.rpm
下載完成以后,輸入如下安裝命令:
sudo yum localinstall influxdb-1.7.7.x86_64.rpm
3.3、安裝JDK1.8版本
查看版本
rpm -qa | grep jdk
卸載版本
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.x86_64
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.181-2.6.14.10.el6.x86_64
安裝JDK1.8版本
rpm -ivh jdk-8u60-linux-x64.rpm
四、修改influx的配置文件
4.1、Linux輸入編輯命令修改配置文件
vim /etc/influxdb/influxdb.conf
源文件為如下:
修改如下:
4.2、修改完畢以后,重啟動服務
service influxdb restart
4.3、查看服務是否啟動
ps -ef |grep influxdb
4.4、端口說明
influxdb的兩個http端口:8083和8086
-
-
-
- port 8083:管理頁面端口,訪問localhost:8083可以進入你本機的influxdb管理頁面;
- port 8086:http連接influxdb client端口,一般使用該端口往本機的influxdb讀寫數據;
-
-
五、訪問頁面
5.1、輸入IP地址和端口號進行訪問
說明:之前老的版本可以訪問,這次使用的是最新版本,沒有訪問界面了。此次只是給大家展示一下,看下效果。
六、在linux中常用命令
6.1、萬能的幫助命令
influx -help
6.2、進入influx命令
influx
6.3、查看influx狀態
show stats
6.4、顯示所有的數據庫
show databases
6.5、創建一個數據庫
create database "jmeter"
6.6、查看該數據庫下所有的表
show measurements
其它常用命令,大家自行查詢即可。
七、Grafana簡介
Grafana可以不用等待整個測試執行完成之后才來查看測試結果和數據,在整個測試過程中,數據可以實時輸出並以動態圖表的形式在前端展示,極大方便了性能測試人員對實時性能測試數據的監控,加上Grafana強大的圖表展示,每個測試人員都可以搭建出自己喜歡的圖形化頁面,並實時與其他人員共享,完成對整個性能測試過程中的實時數據監控。
八、Grafana安裝
8.1、下載安裝命令
wget https://dl.grafana.com/oss/release/grafana-6.2.5-1.x86_64.rpm
sudo yum localinstall grafana-6.2.5-1.x86_64.rpm
安裝遇到的小問題:
-
-
- wget無法安裝,解決方案
-
-
-
-
- -->解決方法是加
--no-check-certificate
參數
- -->解決方法是加
-
-
-
-
- 另外一種下載方式
-
-
-
-
- -->curl -O -L https://dl.grafana.com/oss/release/grafana-6.2.5-1.x86_64.rpm
-
-
8.2、啟動命令
service grafana-server start
8.3、查看狀態命令
/etc/init.d/grafana-server status
8.4、頁面訪問地址
IP地址加上默認端口號3000
默認用戶名、密碼:admin/admin
8.5、配置influx數據源
Add data source
輸入參數信息,點擊Add按鈕
配置成功如下圖所示:
8.6、導入監控DashBoard配置
至此,監控的基本配置已經全部搭建完畢。下面我們需要使用Springboot編寫請求接口。
九、springboot編寫接口
9.1、創建數據庫、表結構
CREATE DATABASE `jmeter` /*!40100 DEFAULT CHARACTER SET utf8 */ CREATE TABLE `user_model` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(64) NOT NULL DEFAULT '', `phone` varchar(64) NOT NULL DEFAULT '', PRIMARY KEY (`id`), UNIQUE KEY `phone_index` (`phone`) ) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8
user_model表,只傳兩個字段name/phone完成注冊請求。
9.2、接口設計
-
- /user/register -->用戶注冊接口
- /user/get -->查詢用戶接口
9.3、打包運行
十、jmeter編寫性能腳本
10.1、版本
-
- 官網下載最新的版本即可
http://jmeter.apache.org/download_jmeter.cgi
10.2、編寫請求腳本
注冊接口為例子,傳參數name,phone(手機號唯一索引,不能重復)。post請求。
10.3、配置Backend Listener
10.4、運行jmeter,查看監控指標
本次實驗所有工具以及代碼分享。原則上大家只要安裝運行,即可看到性能監測的效果展示。
鏈接:https://pan.baidu.com/s/1YtrHHEfNOVK3Q4D2p8zUgg
提取碼:gn1b
- 一、實驗目的及實驗環境
- 1.1、實驗目的
- 1.2、實驗環境
- 二、InfluxDB 簡介
- 2.1、其主要特色功能
- 2.2、InfluxDB的主要特點
- 三、InfluxDB安裝
- 3.1、查看系統版本
- 3.2、RedHat & CentOS安裝命令
- 3.3、安裝JDK1.8版本
- 四、修改influx的配置文件
- 4.1、Linux輸入編輯命令修改配置文件
- 4.2、修改完畢以后,重啟動服務
- 4.3、查看服務是否啟動
- 4.4、端口說明
- 五、訪問頁面
- 5.1、輸入IP地址和端口號進行訪問
- 六、在linux中常用命令
- 6.1、萬能的幫助命令
- 6.2、進入influx命令
- 6.3、查看influx狀態
- 6.4、顯示所有的數據庫
- 6.5、創建一個數據庫
- 6.6、查看該數據庫下所有的表
- 七、Grafana簡介
- 八、Grafana安裝
- 8.1、下載安裝命令
- 8.2、啟動命令
- 8.3、查看狀態命令
- 8.4、頁面訪問地址
- 8.5、配置influx數據源
- 8.6、導入監控DashBoard配置
- 九、springboot編寫接口
- 9.1、創建數據庫、表結構
- 9.2、接口設計
- 9.3、打包運行
- 十、jmeter編寫性能腳本
- 10.1、版本
- 10.2、編寫請求腳本
- 10.3、配置Backend Listener
- 10.4、運行jmeter,查看監控指標