服务器压力测试之JMeter篇(一)

前言

前两天突然发现博客网页登不进去,急坏了我,后来排查问题发现,在那天的中午某一时间段内有较多用户连接该网站,导致了服务器CPU猛升,直达100%了,这也就导致了网站无法访问。于是今天想着测试一下网站的服务器能承受的压力有多大。

目前网络上可提供的压测工具有很多,Apache JMeter、Httperf、OpenSTA、LoadRunner等,在衡量了一下工具的操作以及价格之后,毅然的选择了Apache组织开发的基于Java的免费压力测试工具JMeter。JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100% 的用Java实现。

JMeter下载和使用

下载地址:http://jmeter.apache.org/download_jmeter.cgi

点击左侧的Download Releases后,选择右侧需要下载的压缩包版本(我这里下载的是apache-jmeter-4.0.zip),下载完成后解压即可。

启动
启动方式一:

打开解压后的文件夹进入bin目录找到jmeter.bat,双击后会弹出一个命令窗口和一个JMeter窗口,这就意味着启动成功。注意:在使用JMeter过程中不能关闭命令窗户。

启动方式二:

为了方便以后快速启动JMeter,可将JMeter启动放到环境变量中。具体如下:
1. 右键桌面此电脑 ——> 高级系统设置 ——> 环境变量 ——> 系统变量中新建
变量名:JMETER_HOME
变量值:D:\apache-jmeter-4.0

2. 添加Classpath
变量名:Classpath
变量值:%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;

3. 将JMeter的bin目录加入到path中
变量名:Path
变量值:%JMETER_HOME%\bin;

4. 确认保存后,打开cmd,输入Jmeter启动即可。

使用

工具栏选择Options后点击choose language可选择语言

jmeter的主要三大组成就是取样器(sampler)、线程组、监听器。线程组就是我们测试使用的线程,场景设置;取样器是我们测试的内容,也就是进行脚本逻辑控制;监听器就是测试结果,监控脚本运行,取得性能指标。

接下来我们添加一个线程组进行并行测试。右键Test Plan添加一个线程组


线程组设置好后就需要配置取样器,这里我们选择http请求


最后我们添加监听器查看测试结果以及性能,这里我们添加查看结果树以及聚合报告

最后点击工具栏上的启动,就能在结果树以及聚合报告中看到我们需要的信息

下面我们具体看下聚合报告中的信息

  • Label:每个 JMeter 的 element (例如 HTTP Request )都有一个 Name 属性,这里显示的就 是 Name 属性的值
  • Samples:表示你这次测试中一共发出了多少个请求,这里我们模拟有5个用户,每个用户循环访问2次,因此这里显示10
  • Average:平均响应时间 — 默认情况下是单个Request 的平均响应时间,当使用了事务控制时,也可以以事务为单位显示平均响应时间
  • Median:中位数,也就是 50 %用户的响应时间
  • 90% Line: 90 %用户的响应时间
  • Min:最小响应时间
  • Max:最大响应时间
  • Error%:错误率,本次测试中出现错误的请求的数量/请求的总数
  • Throughput:吞吐量 —默认情况下表示每秒完成的请求数(Requestper Second)
  • KB/Sec:每秒从服务器端接收到的数据量

总结

这里我简单的通过一个get请求演示了一下JMeter的使用,通过JMeter也可以替代postman进行接口测试。另外既然是压力测试,当需要同时有多个用户登录这种情况,我也将在下篇日志中介绍如何使用JMeter读取文件参数化和通过录制脚本来来进行web项目调试。

更多文章请关注我的个人博客:www.zhyocean.cn

猜你喜欢

转载自blog.csdn.net/swpu_ocean/article/details/81987757