Jmeter實時監控+SpringBoot接口性能實戰


 

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、其主要特色功能

    1. 基於時間序列,支持與時間有關的相關函數(如最大,最小,求和等)
    2. 可度量性:你可以實時對大量數據進行計算
    3. 基於事件:它支持任意的事件數據

2.2、InfluxDB的主要特點

    1. 無結構(無模式):可以是任意數量的列
    2. 可拓展的
    3. 支持min, max, sum, count, mean, median 等一系列函數,方便統計
    4. 原生的HTTP支持,內置HTTP API
    5. 強大的類SQL語法
    6. 自帶管理界面,方便使用

三、InfluxDB安裝

 

3.1、查看系統版本

cat /proc/version

cat /etc/issue

 查看結果如圖所示:

image.png

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

image.png

卸載版本

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

源文件為如下:

image.png

修改如下:

image.png

4.2、修改完畢以后,重啟動服務

service influxdb restart

4.3、查看服務是否啟動

ps -ef |grep influxdb

image.png

4.4、端口說明   

 influxdb的兩個http端口:8083和8086

        • port 8083:管理頁面端口,訪問localhost:8083可以進入你本機的influxdb管理頁面;
        • port 8086:http連接influxdb client端口,一般使用該端口往本機的influxdb讀寫數據;

 

五、訪問頁面

5.1、輸入IP地址和端口號進行訪問

說明:之前老的版本可以訪問,這次使用的是最新版本,沒有訪問界面了。此次只是給大家展示一下,看下效果。

http://192.168.15.140:8083/

image.png

 

六、在linux中常用命令

 

6.1、萬能的幫助命令

influx -help

6.2、進入influx命令

influx

image.png

 

6.3、查看influx狀態

show stats

image.png

6.4、顯示所有的數據庫

show databases

image.png

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 

安裝遇到的小問題:

      1. wget無法安裝,解決方案
        1. -->解決方法是加--no-check-certificate參數
      1. 另外一種下載方式
        1. -->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

http://192.168.15.140:3000

默認用戶名、密碼:admin/admin

image.png

 

8.5、配置influx數據源

Add data source

image.png        輸入參數信息,點擊Add按鈕

image.png

配置成功如下圖所示:

image.png

8.6、導入監控DashBoard配置

image.pngimage.pngimage.png點擊import按鈕即可完成配置。

 


至此,監控的基本配置已經全部搭建完畢。下面我們需要使用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、打包運行

image.png

十、jmeter編寫性能腳本

 

10.1、版本

    • 官網下載最新的版本即可

          http://jmeter.apache.org/download_jmeter.cgi

image.png

10.2、編寫請求腳本

image.png

注冊接口為例子,傳參數name,phone(手機號唯一索引,不能重復)。post請求。

10.3、配置Backend Listener

image.png

10.4、運行jmeter,查看監控指標

2019-07-14_161651.png

 

本次實驗所有工具以及代碼分享。原則上大家只要安裝運行,即可看到性能監測的效果展示。

 

鏈接:https://pan.baidu.com/s/1YtrHHEfNOVK3Q4D2p8zUgg

提取碼:gn1b

 

image.png

 

 
 
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM