linux centos8上用jmeter压测接口并发能力

首先条件:安装jdk1.8的环境

第一步:下载jmeter安装包(/usr/local/目录下)
wget https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-5.3.tgz
如果上述下载比较慢,请用迅雷下载,并上传到linux当前路径下。
完成后解压到当前路径下   tar -zxvf apache-jmeter-5.3.tgz

第二步:配置环境参数
vim /etc/profile

新增如下内容:
export JMETER_HOME=/usr/local/apache-jmeter-5.3
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH

最后让配置生效    source /etc/profile
jmeter -v  查看是否安装成功
如图所示:


第三步:修改/usr/local/apache-jmeter-5.3/bin目录下修改jmeter.sh的java环境配置
新增两行如下:
export JAVA_HOME=/usr/local/jdk1.8.0_211
export JRE_HOME=/usr/local/jdk1.8.0_211/jre


保存后退出
这一步骤,主要是解决在批量操作服务器时会报错,Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 

第四步:将window下编写好的脚本文件上传linux后,执行脚本
在/usr/local/apache-jmeter-5.3  路径下生成日志文件路径 mkdir logs

在window环境下编写脚本
在window电脑上自己编写脚本,具体地址详见我的博客:window使用jmeter_感冒石头的博客-CSDN博客
编写好脚本以后就上传到linux上,这里就上传到/usr/local/apache-jmeter-5.3/bin目录下。

进入bin目录下执行脚本:sh jmeter.sh -n -t home_getSystemList_10000.jmx -l result_nice -e -o /usr/local/apache-jmeter-5.3/logs
home_getSystemList_10000.jmx   要被执行的脚本文件
result_nice  为直接的结果--测试报告(/usr/local/apache-jmeter-5.3/bin目录下生成)
/usr/local/apache-jmeter-5.3/logs   执行后的日志文件

第五步:查看或者清理日志
/usr/local/apache-jmeter-5.3/logs 可以查看到html数据情况
在执行脚本前,先删除该logs下的所有文件, rm -rf *
再删除bin路径下result_nice目录
如果不删除,那么执行会报错,报错显示不是空的文件夹。 


重点:根据上述每次压测都要删除文件目录,所以很麻烦,而且执行一个脚本命令都要修改,所以我写了一个脚本,解决了上述两个问题


脚本下载地址

sh start.sh home_getSystemList_10000     ---执行脚本、其中home_getSystemList_10000 是可变参数

同时并发测试方案多台机器
第一种方式:如果想要多台机器同时并发执行,那么让多台机器都部署配置一样,然后可以利用Shell工具中的全局变量,一个命令,全局对话框中的所有服务器都会执行当前命令。

Shell工具栏中调试出命令框
选择查看-------》撰写-------》撰写栏和撰写窗格    即可出现执行命令栏


会话栏如图所示: 这里还要选择会话类型

窗口中打开两个窗口,都到相同路径下,然后在撰写中输入ls命令,然后回车,可以看到两个对话框中已经执行该命令


第二种方式:使用阿里云ECS实例列表,选择批量操作,然后根据自己的选择手动选择实例,还是指定实例标签,
最重要一点,选择并发速率。




新增标签,并绑定ECS服务器-----》这里可以新建多个标签。比如你并发5台,8台等等,然后可以在上个界面选择多个标签。




这里我选择三台。执行如下:

重点:这里同时最多限制执行20台服务器,如果有40台服务器(弹性伸缩可以按量付费扩展出来,按小时计费,使用完毕后可以释放),可以分两组同时执行。
如果不使用标签组压测,而选择手动选择实例,那么弹性伸缩模板配置服务器名称最好每组起不用名字进行区分,方面在选项栏里面筛选


 

重点2:使用阿里云批量操作和远程命令存在极大问题,阿里云云助手默认ulimit -n   默认是:1024,在高并发大量测试过程发生无法打开文件报错,因为句柄数太小,修改linux 句柄数并不修改阿里云云助手句柄数,问题就在这。
解决方案:
可以尝试编辑云助手service 配置文件 /etc/systemd/system/aliyun.service
在 Service 段中增加 LimitNOFILE=800000,
然后执行
systemctl daemon-reload
systemctl restart aliyun




测试报告

 

聚合报告参数详解: 

Label:sampler样本名称,不清楚测试结果时,修改样本测试后,会显示不同的样本名称
#Samples:样本数,执行的次数,100表示执行了100次,users(用户并发请求数) * loopCount(循环次数)
Average:平均响应时间,默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,以Transaction 为单位显示平均响应时间 
Median:中位数,也就是 50% 用户的响应时间 
90% Line:90% 用户的响应时间 
95% Line:95% 用户的响应时间 
99% Line:99% 用户的响应时间 
Min:最小响应时间 
Maximum:最大响应时间 
Error%:错误率——错误请求数/请求总数 
Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数 
Received KB/Sec:每秒从服务器端接收到的数据量
Sent KB/Sec:每秒发送请求的数据量
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值