前言
使用Jmeter在非GUI环境对项目进行压测,属于高级测试工程师需掌握的技能之一;阅读本章需要掌握linux基本操作命令,jvm基础知识;也适合开发工程师了解Jmeter在非GUI环境的压测流程。
疑问:为什么要在非GUI环境使用Jmeter进行压测?为什么要求Jmeter和项目必须保持在同个内网压测?GUI环境使用Jmeter的图形界面操作挺方便的。
- 在windows等GUI环境下,由于windows的可视化操作界面,后台其他进程等都会占用系统资源,会导致Jmeter压测相关指标不精准;
- 在linux等非GUI界面下,常规都是命令行操作模式,无没必要的进程占用系统资源,jmeter可以更好的进行压测,得到更精准的压测报告
- 常规开发完成的项目都部署在远程Linux服务器上,测试人员如果使用windwos系统对远程Linux上的项目进行压测,由于还要多走网络通许协议,此时公司带宽或服务器带宽较低,同样也会导致测试结果不精准,所以一般是要求Jmeter和项目进行内网压测;
配置和要求
Jmeter压测脚本jmx:对接口“课程列表”和“秒杀接口”进行压测,集合点500,持续2分钟;
Linux服务器:CentOS 7.8,2核8G(推进使用云服务器,如阿里云,腾讯云等)
jdk要求:JDK8,Linux安装JDK教程,JDK官网
Linux文件上传下载,命令行操作工具:
- mac使用: filezilla、item2
- win使用:winscp、putty、SecureCRT+FX
作者本地环境windows,使用SecureCRT+FX做服务器操作工具
案例实战
1、使用服务器命令工具创建目录;并将JDK8上传到服务器;
// 创建java目录,存放jdk和项目环境
mkdir /usr/local/java
// 创建jmeter目录,存放jmeter压测软件
mkdir /usr/local/jmeter
2、解压JDK8
tar -zxvf jdk-8u181-linux-x64.tar.gz
3、配置环境变量
// 使用命令编写环境变量,在最底部加入jdk8的路径
vim /etc/profile
# jdk8环境变量,路径不能有中文或空格
JAVA_HOME=/usr/local/java/jdk8 //改成自己安装的jdk版本路径和地址
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
环境变量立刻生效,并查看环境变量配置结果
source /etc/profile
查看安装情况 java -version,显示版本号则安装成功;
4、上传Jmeter5.x压缩包和压测jmx脚本到服务器;并使用命令对Jmeter5.x压缩包进行解压
安装解压工具:yum install unzip
Jmeter5.x压缩包,解压命令:unzip apache-jmeter-5.5
5、上传应用程序,并启动;
// 进入项目所在目录
cd /usr/local/java/jmeter
// 使用命令启动项目;守护进程方式,退出终端,进程依旧再
nohup java -Dfile.encoding=utf-8 -jar jmeter-edu.jar >jmeter-edu.log &
// 查看项目启动情况
ps -ef|grep java
6、启动jmx脚本对项目接口进行压测
// 进入jmeter的bin目录
cd /usr/local/jmeter/apache-jmeter-5.5/bin
// 启动脚本文件
./jmeter -n -t /usr/local/jmeter/test.jmx -l /usr/local/jmeter/html/temp/jtl/result.jtl -e -o /usr/local/jmeter/html/temp/result
压测脚本说明:
- -n 非gui方式运行jmeter
- -t :jmx 脚本路径
- -l :result.jtl 运行结果保存路径,注意:.jtl 文件名不能重复,文件夹需要存在
- -e :在脚本运行结束后生成 HTML 报告
- -o :用于存放 HTML 报告的目录,文件夹需要存在
注意:进行第二次压测的时候,jtl文件夹和result文件下的文件要提前删除,否则会报错;
Jmeter目录结构
启动jmx脚本文件;
压测结束后,生成的测试报告;需要通过服务器文件传输工具下载到本地查看;
至此,在Linux服务器上使用Jmeter进行压测告一段落。在使用Jmeter压测过程中,需要不断 调整线程数和压测时间,并生成压测报告,最后总结出系统的最优并发数,瓶颈等提供给开发人员,方便后续开发根据线上项目情况及时给服务器增加配置或服务器;
后续是进行真实项目综合实战的压测脚本编写;根据实际项目业务需求,进行接口关联压测和独立压测;
后续综合环境配置:
阿里云ECS服务器:4核8G;
数据库RDS:mysql8
压测项目:springboot+mybaitsPlus+jwt,集合token授权机制;
压测接口:会员接口(增删改),商品接口(增删改),下单接口,管理员登录获取token接口。
阿里云服务器内网压测结果:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/64614.html