<JMeter系列> 01.从入门到入坑

358 阅读3分钟

前戏:

“小A,这个接口7,800毫秒,优化下吧!”,老板说到。

“没问题!”小A答。

经过一顿猛如虎的操作,小A很快把接口优化完了。但是小A却愁容满面,这是怎么回事呢,原来虽然接口优化完了,但是小A不知道如何做性能测试。

是时候JMeter登场了!


正文

JMeter简介:

JMeter是一款压测工具,支持多种服务协议(HTTP、TCP、FTP)、各平台兼容(纯Java)、具有可视化数据展示等特点。

利用JMeter,我们可以对自己的接口进行压测,通过可视化的数据,量化接口性能指标,让你做到心里有字母数。

本着talk is cheap, show me the code的精神,我们废话不多说,直奔主题。

1. JMeter的安装

1.下载链接🔗:jmeter.apache.org/download_jm…

  1. 下载,解压好好,进入文件的bin目录,双击jmeter执行即可(对于windows,需要双击jmeter.bat)。

整个IDE如下图所示:

到这一步我们就安装好了JMeter了。

2. JMeter的简单使用示例

a. 通过模版新建一个测试任务

工具栏: 点击<templates...> ,选择新建一个 测试计划。

如上图所示,我们新建了一个测试任务。

b. 测试接口

1. 接口文档

我们先随便找一个接口来测试。

URL: host+[port]+"/api/client/userActionRecord/batch"
Method: POST
Headers: 
	Content-Type: application/json	
	Authorization: Bearer {{clientToken}}	
Body:
	userIds: ["xxx","yyy"]
	actionTypes: [1,2]

2. 根据接口编写test plan

如上图所示,在[HTTP Header Manager]中加上header.

如上图所示,在[SOAP Request]中,填写完Server Name\Method\Path\Body Data等相应信息。

点击[Advanced],在红框中选中HttpClient4。

另外,记得把这个Assertion 删除掉。

3. 最后一步:运行

确认完红框中的参数(这里我们选择默认),点击运行按钮就可以开始了。

参数介绍:

option
Number of Threads (users) 线程总数
Ramp-up period (seconds) 加速时间(如果线程总数为100,加数时间为10s,那么每个0.1s将会创建一个线程。)
Loop Count 每个线程执行请求的次数。 执行请求的总数=Number of Threads * Loop Count

4. 查看结果:

点击[Aggregate Graph]

上图红框中各列的含义:

Metrics
Samples 请求数
Average 平均响应时间(ms, 以下时间单位均为ms)
Median(50% Line) 50%的请求小于这个响应时间。(类似于对响应时间升序排序,取中间的那个值)
90%/95%/99% Line 与Median类似
Min 最小响应时间
Max 最大响应时间
Error% 错误率
Throughput 吞吐量,请求数/时间
Received 响应获得的数据量/时间
Sent 请求发送的数据量/时间

可以看到,在线程总数=5,加速时间=5s,每个线程执行请求=2的情况下,这个接口的平均响应时间为49ms,最小响应时间为28ms,最大响应时间为92ms。

3. 参考

  1. jmeter.apache.org/index.html JMeter官方文档,极力推荐
  2. www.testingjournals.com/category/pe… 一系列JMeter使用指南,推荐
  3. blog.csdn.net/lluozh2015/… 某大佬博客,推荐