前两天突然发现博客网页登不进去,急坏了我,后来排查问题发现,在那天的中午某一时间段内有较多用户连接该网站,导致了服务器CPU猛升,直达100%了,这也就导致了网站无法访问。于是今天想着测试一下网站的服务器能承受的压力有多大。
目前网络上可提供的压测工具有很多,Apache JMeter、Httperf、OpenSTA、LoadRunner等,在衡量了一下工具的操作以及价格之后,毅然的选择了Apache组织开发的基于Java的免费压力测试工具JMeter。JMeter 是 Apache 组织的开放源代码项目,它是功能和性能测试的工具,100% 的用 Java 实现。
JMeter下载和使用
点击左侧的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启动即可。
使用
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项目调试。
领取专属 10元无门槛券
私享最新 技术干货