使用Apache JMeter做压力测试

- 介绍 -

JMeter是Apache组织的开放源代码项目,能做功能测试和性能测试。它能够对HTTP和FTP服务器进行压力和性能测试,也可以对任何数据库进行同样的测试(通过JDBC),还能以多种形式展现测试结果。

跟LoadRunner的区别,JMeter是开源的,LR是商业软件,JMeter更灵活,LR更好用可以录制脚本。

- 应用场景 -

开发环境UI响应比较慢,解决思路:

1. 先用browser debug工具分析发现是接口响应慢,导致UI一直处于等待状态

2. 然后使用工具做接口性能分析

3. 最后对分析出来的接口做性能优化

以上,实际上就是一个压力测试的过程,这里使用开源工具Apache JMeter做压力测试,步骤记录如下:

一. 下载和安装

Apache JMeter官网选择二进制文件下载,完成后直接解压使用(windows点击C:\Program Files (x86)\apache-jmeter-4.0\bin\jmeter.bat启动主程序)。

使用Apache JMeter做压力测试

二. 创建线程组

新建线程组,右键点击测试计划,添加>Threads(Users)>线程组

使用Apache JMeter做压力测试

设置线程数10,Ramp-Up period(in seconds):0,循环次数:1 

Ramp-Up period指的是所有线程运行完限定的时间(如果设置为0,就是并发);

如图模拟的是10个线程并发访问接口的场景。

三. 新建HTTP请求,右键点击线程组>添加>Sampler>HTTP请求

使用Apache JMeter做压力测试

使用Apache JMeter做压力测试

如图是模拟http post请求,分别添加了request body 和 header。

四. 创建结果报告

使用Apache JMeter做压力测试

使用Apache JMeter做压力测试

如图分别模拟了10个和100个线程并发访问接口时的接口性能:

10个线程并发 10秒

100个线程 25秒

可见接口性能不好,并且出现了比较严重的性能退化。