- 性能测试
- 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配置
点击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、打包运行
十、jmeter编写性能脚本
10.1、版本
- 官网下载最新的版本即可
10.2、编写请求脚本
注册接口为例子,传参数name,phone(手机号唯一索引,不能重复)。post请求。
10.3、配置Backend Listener
10.4、运行jmeter,查看监控指标
本次实验所有工具以及代码分享。原则上大家只要安装运行,即可看到性能监测的效果展示。