性能测试很简单-JMeter性能测试实践

文章讲述了如何使用JMeter进行服务器压力测试,包括JMeter的安装、非GUI启动方式,以及设置压测任务对一个HTTP查询服务进行100线程15分钟的测试。结果显示服务器在100线程并发下的最大QPS为13,平均响应时间为2800ms以下。
摘要由CSDN通过智能技术生成

最近破费买了一台服务器,准备搭建自己的网站,顺便将自己开发的一些测试小工具部署到服务器上,虽然机器配置一般,还是决定对服务器进行压测一番,看一下服务器性能如何。本次压测选择的工具是JMeter,这个工具也是接口测试工具,可以做接口自动化测试。话不多说,开整。

安装Jmeter

JDK

Java Downloads | Oracle

直接安装dmg文件即可。

JMeter

安装很简单,直接解压官网下载的.tgz安装包就行了

Index of /dist/jmeter/binaries

启动,有两种方式

  1. GUI启动

进入解压的Jmeter的bin目录,执行./jmeter即可启动

  1. 非GUI启动
jmeter -n -t xx.jmx -l log.jtl

⚠️压测注意事项:Don't use GUI mode for load testing:不要使用GUI模式进行负载测试。

压测准备

服务介绍

http://121.196.172.xxx/?s=%E4%BD%A0%E5%A5%BD,该服务就是一个HTTP请求,Get请求方法。

服务器配置

配置项

配置值

CPU

Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz

内存

2G

硬盘

40G

操作系统

Red Hat 4.8.5-11

压测任务

简单压测查询服务性能,具体操作开启100个线程对查询接口进行压测15min,观察性能表现。

压测脚本开发

  1. 配置线程组

  • same user on each iteration:意思是同一个用户发起请求,勾上并不能代表真正意义上的多线程访问。
  • Ramp-up period(in second):例如100个用户,这里配置10,则每秒启动10个用户
  • Loop-count:循环次数,每个线程发送请求的次数。eg:线程数为20,循环次数为5,那么每个线程发送5次请求,总请求数为20*5=100
  1. 开发接口测试请求

  1. 本地调试

执行压测

我们设定测试场景为100用户,每隔1秒启动10个新客户;整个测试持续15min。现在,我们切换到性能测试脚本目录下,执行下面的命令启动测试:

jmeter -n -t xxx.jmx -l log.jtl

生成压测报告

jmeter -g log.jtl -o <report folder>

压测结果

服务器监控

先看下服务器监控

压测结果分析

我们需要先对测试结果做个介绍,查看数据统计图:

平均响应时间3622ms,吞吐量12.92Tranction/s。

聚合报告参数详解:

  1. Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值
  2. Samples:请求数——表示这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100
  3. Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,以Transaction 为单位显示平均响应时间
  4. Median:中位数,也就是 50% 用户的响应时间
  5. 90% Line:90% 用户的响应时间
  6. Min:最小响应时间
  7. Max:最大响应时间
  8. Error%:错误率—错误请求数/请求总数
  9. Throughput:吞吐量—默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数
  10. KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

吞吐量

可以看到查询服务的TPS在1分钟内逐渐攀升,最终稳定在13QPS左右。

响应时间

在开始逐渐加压的1分钟内响应时间不断增加,可以结合服务器监控发现,这主要是因为开始加压阶段CPU占用飙升至90%,内存使用也在增加(非主因)导致。随着线程全部开启后,资源消耗相对稳定,响应时间开始逐渐降下来,最终在2000ms左右徘徊。

75%的事务处理时间都在4755ms以下,整体平均响应时间处于2800ms以下。

结论:在100线程并发场景下,服务器最大QPS可以达到13。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值