Jmeter5.x之Linux下非GUI压测实战

前言

        使用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接口。

阿里云服务器内网压测结果:

​​​​​​​

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Linux下进行JMeter分布式压测,可以按照以下步骤操作: 1. 在主机上安装JMeter:你可以从Apache JMeter官方网站下载并解压JMeter。 ``` wget https://downloads.apache.org/jmeter/binaries/apache-jmeter-5.4.1.tgz tar -xvf apache-jmeter-5.4.1.tgz cd apache-jmeter-5.4.1/ ``` 2. 配置主机:编辑 `jmeter.properties` 文件,找到并修改以下两行: ``` remote_hosts=127.0.0.1 // 将此处的IP地址改为你的远程主机IP地址 client.rmi.localport=4000 // 可以选择一个未被占用的端口号 ``` 3. 配置远程主机:在每个远程主机上重复步骤1和步骤2。 4. 启动主机:在主机上运行以下命令启动JMeter服务器。 ``` ./bin/jmeter-server ``` 5. 启动远程主机:在每个远程主机上运行以下命令启动JMeter服务器。 ``` ./bin/jmeter-server ``` 6. 配置测试计划:使用JMeter GUI创建测试计划,包括线程组、请求等。确保在线程组元件的属性面板中选择 "Run Thread Groups consecutively" 选项。 7. 配置分布式压测:在测试计划中,右键单击线程组元件,选择 "Add" -> "Config Element" -> "Remote Testing" -> "Distributed Testing"。在 "Remote Hosts" 栏中输入远程主机的IP地址列表,用逗号分隔。 8. 运行测试计划:保存并关闭测试计划,然后在主机上运行以下命令开始压测。 ``` ./bin/jmeter -n -t your_test_plan.jmx -r ``` 注意:确保主机和远程主机之间可以互相通信,并且防火墙没有阻止JMeter服务器的通信。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

♂老码♂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值