在当前激烈的市场竞争中,创新和效率成为企业发展的核心要素之一。在这种背景下,如何保证产品和服务的稳定性、可靠性以及高效性就显得尤为重要。
而在软件开发过程中,性能测试是一项不可或缺的环节,它可以有效的评估一个系统、应用或者软件的性能指标。然而,如何提升性能测试效率,把测试结果转化为有价值的信息,则是一个更加重要的问题。
因此,本文提供了一个基于JMeter、Grafana和Influxdb的优化整合方案,将三个工具进行智能化整合,通过实时监控和数据分析,帮助团队更好地发现和解决性能问题,为企业提升产品和服务的质量打下坚实的基础。无论您是团队负责人、测试工程师、运维工程师或其他技术人员,都可以通过本文的方案,轻松打造智能化性能测试监控平台,从而在激烈的市场竞争中获得更大的优势。
【背景说明】
使用jmeter进行性能测试时,工具自带的查看结果方式往往不够直观和明了,所以我们需要搭建一个可视化监控平台来完成结果监控,这里我们采用三种JMeter+Grafana+Influxdb的方法来完成平台搭建
【实现原理】
通过influxdb数据库存储jmeter的结果,再通过grafana采集influxdb数据库数据,完成监控平台展示
【平台搭建】
方法一:Windows或macOS环境下搭建
1.InfluxDB安装
首先进入influxDB官网下载安装包(选择2.0以下版本)
https://portal.influxdata.com/downloads/
Windows可使用以下链接直接下载
https://dl.influxdata.com/influxdb/releases/influxdb-1.7.9_windows_amd64.zip
下载完成后进行解压,以Windows为例:
进入文件夹可看到以下目录
点击influxd.exe启动数据库,启动成功如下图所示
点击influx.exe进入influxdb客户端,进入后创建名字为“jmeter”的数据库
2.grafana安装
首先进入grafana官网下载安装包
https://grafana.com/grafana/download
选择对应系统后下载,以Windows为例:
解压完成后进入bin目录点击grafana-server.exe
来启动grafana程序
启动完成后打开浏览器输入http://localhost:3000
进入grafana登录页面
默认用户名和密码都为admin,进入首页后点击添加数据库
选择influxdb数据库,填写以下信息即可
点击sava&test,显示data source is working表示数据库连接成功
导入已下载好的仪表盘
也可以到grafana官网寻找模板,在导入模板处输入需要模板的Downlosds编号即可
https://grafana.com/grafana/dashboards
最后如图所示
3.jmeter配置
1.jmeter中,添加“监听器 -> 后端监听器”
配置后端监听器,目的是把jmeter的结果存入influxdb数据库
方法二:Linux环境下搭建
1.influxdb安装
使用命令直接安装influxdb
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.4_linux_amd64.tar.gz
解压influxdb压缩包
tar -zxvf influxdb-1.8.4_linux_amd64.tar.gz
添加环境变量
cd influxdb-1.8.4-1/usr/bin
sudo cp {influx,influxd} /usr/local/bin/
启动influxdb
influxd
启动influxdb客户端,创建jmeter数据库
influx
create database jmeter
2.grafana安装
使用命令直接安装
wget https://dl.grafana.com/oss/release/grafana-7.5.2.linux-amd64.tar.gz
解压安装包
tar -zxvf grafana-7.5.2.linux-amd64.tar.gz
启动grafana
cd grafana-7.5.2/bin
./grafana-server
访问grafana网页,其余操作和方法一相同
http://ip:3000
3.jdk+jmeter安装
安装jmeter之前需要先安装jdk,下载jdk(可以使用下面地址进行下载,也可以去官网下载,官网需要登录oracle)https://www.jdkdownload.com/
,我这选择jdk-8u181-linux-x64.tar.gz
版本下载
解压jdk
tar -zxvf jdk-8u181-linux-x64.tar.gz
配置环境变量,修改配置文件vi /etc/profile
,文本最后加上以下内容
JAVA_HOME=/usr/local/java/jdk1.8.0_181
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
使环境变量生效
source /etc/profile
验证jdk配置成功
java -version
使用命令直接安装jmeter
wget https://mirrors.bfsu.edu.cn/apache//jmeter/binaries/apache-jmeter-5.4.3.tgz
解压jmeter
tar -zxf apache-jmeter-5.4.3.tgz
配置jmeter环境变量,vi /etc/profile
,文本最后加上以下内容
export JMETER_HOME=/usr/local/apache-jmeter-5.4.3
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH
使环境变量生效
source /etc/profile
验证jmeter配置成功
jmeter --version
将jmeter脚本上传到当前文件夹中,执行以下命令启动jmeter
jmeter -n -t ***.jmx -l test.jtl
参数说明:
-n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter
-t 测试文件 -> 要运行的 JMeter 测试脚本文件
-l 日志文件 -> 记录结果的文件
方法三:docker容器下安装
1.influxdb安装并运行(选择2.0以下版本)
docker run -itd --name influxdb -p 8086:8086 influxdb:1.8.3
进入容器
docker exec -it influxdb /bin/bash
创建数据库
influx
create database jmeter
show databases
2.grafana安装并运行
docker run -itd --name grafana -p 3000:3000 grafana/grafana
进入容器
docker exec -it grafana /bin/bash
访问grafana网页,其余操作和方法一相同(需注意容器内连接influxdb使用容器ip)
http://ip:3000
3.jmeter安装
首先需要先下载jmeter
wget https://mirrors.bfsu.edu.cn/apache//jmeter/binaries/apache-jmeter-5.4.3.tgz
我们使用dockerfile安装,内容如下
FROM java:8
ENV http_proxy ""
ENV https_proxy ""
RUN mkdir /jmeterdocker
RUN mkdir -p /jmeterdocker/test
RUN mkdir -p /jmeterdocker/test/input/jmx
RUN mkdir -p /jmeterdocker/test/input/testdata
RUN mkdir -p /jmeterdocker/test/report/html
RUN mkdir -p /jmeterdocker/test/report/jtl
RUN mkdir -p /jmeterdocker/test/report/outputdata
RUN chmod -R 777 /jmeterdocker
ENV JMETER_VERSION=5.4.3
ENV JMETER_HOME=/jmeterdocker/apache-jmeter-${JMETER_VERSION}
ENV JMETER_PATH=${JMETER_HOME}/bin:${PATH}
ENV PATH=${JMETER_HOME}/bin:${PATH}
COPY apache-jmeter-${JMETER_VERSION}.tgz /jmeterdocker
RUN cd /jmeterdocker \
&& tar xvf apache-jmeter-${JMETER_VERSION}.tgz \
&& rm apache-jmeter-${JMETER_VERSION}.tgz
在dockerfile文件路径下执行命令
docker build -t jmeter .
创建jmeter容器
docker run -itd --name=jmeter -v /tmp/jmeterspace/test/input/jmx:/jmeterdocker/test/input/jmx \
-v /tmp/jmeterspace/test/input/testdata:/jmeterdocker/test/input/testdata \
-v /tmp/jmeterspace/test/report/html:/jmeterdocker/test/report/html \
-v /tmp/jmeterspace/test/report/jtl:/jmeterdocker/test/report/jtl \
-v /tmp/jmeterspace/test/report/outputputdata:/jmeterdocker/test/report/outputdata \
-p 1099:1099 \
jmeter
将jmeter脚本放在容器外的/tmp/jmeterspace/test/input/jmx
路径下
进入容器,执行以下命令
docker exec -it jmeter /bin/bash
cd /jmeterdocker/test/input/jmx
jmeter -n -t ***.jmx -l test.jtl
参数说明:
-n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter
-t 测试文件 -> 要运行的 JMeter 测试脚本文件
-l 日志文件 -> 记录结果的文件
运行结果如图所示
【小结】
以上三种方式都可以完成JMeter+Grafana+Influxdb平台搭建,这里可根据需要选择相应的方式安装即可
这些方法都需要我们亲身去实践才会有深刻的感受和理解,但最根本的方法就是保持我们对这个行业的热情和对最佳实践的追求,这才是我们能不断突破自我、勇攀高峰的不竭动力源泉!
作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:开心螺蛳粉】自提!
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群:1150305204,里面有各种测试开发资料和技术可以一起交流哦。