未完,待更新
一、背景
日常工作中,经常会用到Jmeter去压测,毕竟LR还要钱(@¥&*...),而最常用的接口压力测试,我们都是通过聚合报告去查看压测结果的,然鹅聚合报告的真的是丑到家了,作为程序猿这当然不能忍!那我们要怎么给它变得好看点捏?
二、如何华丽变身?
方式 |
优点 |
缺点 |
Jmeter+ant+Jenkins |
快捷,上手简单 |
报告还是不够美观、直观,如果测试接口一多,报告就会显示臃肿不够直观 |
Grafana+Jmeter+Influxdb(推荐) |
数据可视化,数据直观,筛选功能强大,拓展能力强 |
当然就是要自己部署环境咯,还得了解Influxdb的语法和常用查询语句,系统方法等..... |
三、工具介绍
工具 |
介绍 |
Jmeter |
Java语言开发的压力测试工具(不多介绍) |
InfluxDB |
Go 语言开发的一个开源分布式时序数据库,非常适合存储指标、事件、分析等数据 |
Grafana |
纯 Javascript 开发的前端工具,用于访问 InfluxDB,自定义报表、显示图表等 |
四、Centos7安装InfluxDB
备注:博主是自己买的阿里云服务器哈,就不介绍虚拟机下如何安装了(毕竟虚拟机很多坑...)
Influxdata官网下载路径:https://portal.influxdata.com/downloads
1、直接执行以下命令进行安装:
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.6.3.x86_64.rpm sudo yum localinstall influxdb-1.6.3.x86_64.rpm
2、安装完成后,修改InfluxDB的配置,主要配置jmeter存储的数据库与端口号
vim /etc/influxdb/influxdb.conf
3、找到graphite并且修改它的库与端口
enabled = true database = "jmeter" retention-policy = "" bind-address = ":2003" protocol = "tcp" consistency-level = "one
4、找到http,将前面的#号去掉
5、现在新版本的InfluxDB已取消自带的数据可视化界面了,旧版的还是有,可通过找到admin,将前面的#号去掉,开放它的UI端口;(非必须!)
如果安装的版本没有也没关系,后面会介绍InfluxDB的可视化工具!
[admin]
# Determines whether the admin service is enabled.
enabled = true
# The default bind address used by the admin service.
bind-address = ":8083"
6、配置成功后,启动InfluxDB
启动命令:systemctl start influxdb.service
查看状态命令:systemctl status influxdb.service
到此,InfluxDB已安装并配置完成了!!*:ஐ٩(๑´ᵕ`)۶ஐ:*
特别说明:
- 8083端口:InfluxDB的UI界面展示的端口
- 8086端口:Grafana用来从数据库取数据的端口
- 2003端口:刚刚设置的,Jmeter往数据库发数据的端口
五、Centos7安装Grafana
Grafana官网下载路径:https://grafana.com/grafana/download
1、直接执行以下命令进行安装:
wget https://dl.grafana.com/oss/release/grafana-6.5.2-1.x86_64.rpm sudo yum localinstall grafana-6.5.2-1.x86_64.rpm
2、然后启动即可
启动命令:systemctl start grafana-server.service
查看状态命令:systemctl status grafana-server.service
3、访问IP加端口【http://xxx.xx.xx.xx:3000】,输入用户名,密码登录系统。用户名与密码都是"admin",如果能打开页面则已经成功了!但是...装环境这东西怎么可能这么简单??
4、当你查看状态是active但是访问3000时是失败的话,辣么有可能就是你的3000端口还未开放!
如果你是买的各大厂商的云服务器,辣么这问题很好解决,去安全组开放3000端口即可,可以顺便把influxDB几个端口也给开了(8086、2003、8083)
因为博主用的是阿里云,所以这里就只介绍下阿里云如何开通端口,按着下面三张图来操作就行嘞
这个时候有同学就说了,不通过平台的方式行不行,我想锻炼我的Linux能力...当然可以,接下来介绍下直接在Linux上配置防火墙规则来开放端口(Centos7以上,Centos6和7用的防火墙规则不一样,这里不介绍Centos6)
先掌握下systemctl+firewall常见命令
描述 | 命令 |
查看firewall状态 | systemctl status firewalld.service |
启动firewall | systemctl start firewalld |
停止firewall | systemctl stop firewalld |
开机启动firewall | systemctl enable firewalld |
开机禁止firewall | systemctl disable firewalld |
额外学习下systemctl命令^_^ | |
查看服务是否开机启动 | systemctl is-enabled firewalld.service |
查看已启动的服务列表 | systemctl list-unit-files|grep enabled |
查看启动失败的服务列表 | systemctl --failed |
其次掌握下firewall-cmd常见命令
描述 | 命令 |
查看firewall全部信息 | firewall-cmd --list-all |
查看已开放的端口 | firewall-cmd --list-ports |
更新防火墙规则 | firewall-cmd --reload |
开放端口 | firewall-cmd --zone=public --add-port=3000/tcp --permanent |
关闭端口 | firewall-cmd --zone=public --remove-port=3000/tcp --permanent |
最终执行步骤:
- 首先查看firewall是否已开启:systemctl status firewalld.service
- 开放端口(开放后需要更新规则才能生效): firewall-cmd --zone=public --add-port=3000/tcp --permanent
- 更新防火墙规则:firewall-cmd --reload