为了测试自己的接口在并发请求下表现如何,不得不快速入门了Apache JMeter。之前用过Postman,Postman的界面更友好美观,如果只是简单测试下接口的响应,强烈推荐Postman,但它确实并不支持并发测试。(至少我搜到的所谓postman并发测试教程都是错的,runner是阻塞排队执行,并不是并发。)
本文主要分为安装JDK、安装JMeter、JMeter的使用三大部分,其中JMeter的使用包括如下5个部分。全文操作下来仅需20min-1h,即可完成JMeter入门。
添加线程组
添加HTTP请求
添加结果树视图/聚合视图
执行性能测试/并发测试
测试报告解读
Part 1. 安装JDK
由于JMeter是纯Java开发的软件,首先需要安装Java 8环境。
1.1 JDK下载
推荐使用网盘下载,因为官网不知道何时起需要注册才能下载了。注册流程较为繁琐。
方法1:网盘下载:
链接:https://pan.baidu.com/s/1iVxsnX25mvbNia8-_bzIVg
提取码:utnx
方法2:官网下载:
官网地址:Java SE - Downloads,下拉选择Download JDK。
在转跳的页面中,一定要先选择 Accept License Agreement接受许可要求,再选择对应版本,我的电脑系统为64位Windows,选择最后一个。最后在跳出的登录页面登陆成功后方可下载。
1.2 JDK的安装
安装没有什么问题,一路狂点”Next下一步”就好了。
1.3 JDK的环境变量(可跳过)
如果是默认方式安装一般会配置好环境变量,如果不放心可以自己查看下是否含有…….\Oracle\Java\javapath路径。
Part 2. 安装JMeter
2.1 JMeter的下载
直接去官网下载最新版本的zip即可。
官网下载地址:http://jmeter.apache.org/download_jmeter.cgi
2.2 JMeter的启动
将zip解压到你想要的位置。
进入解压后的bin目录,双击jmeter.bat文件即可启动。
会先打开一个cmd窗口,然后才是软件界面,如果关闭该cmd窗口软件也会关闭。
Part 3. JMeter的使用
3.1 切换为中文简体界面(可选)
Options-Choose Language-Chinese
由于我这版本的中文界面字体太粗看着很难受,我还是以英文界面为例说明,同时附上中文翻译。
3.2 添加线程组
右键点击“Test Plan测试计划”-“Add添加”-“Threads(Users)线程(用户)”-“Thread Group线程组”
这里可以配置线程组名称、线程数、循环次数、调度器等参数,如做2次20个并发的测试,将线程数改为20,循环数改为2即可。
3.3 添加HTTP请求
JMeter的功能其实很强大,但此处我们只对HTTP方法做测试。
右键点击“Thread Group线程组” - “Add添加”-“Sampler” - “HTTP Request”
以172.12.123.183:9999/test/v1为例进行下图的参数填写。
协议:向目标服务器发送HTTP请求协议,可以是HTTP或HTTPS,默认为HTTP
服务器名称或IP :HTTP请求发送的目标服务器名称或IP,格式如172.12.123.183
端口号:目标服务器的端口号,默认为80 ,此例为9999
方法:发送HTTP请求的方法,包括GET、POST、HEAD、PUT等。
路径:去掉服务器地址、端口后剩余部分,此例为/test/v1
编码方式:默认为ISO-8859-1,如请求中所传参数中包含中文,填写utf-8
在请求中添加参数:
如需在请求中发送参数,注意参数含中文时需要勾选“URL Encode编码”,并在编码方式填写utf-8。
在请求中添加文件参数(图片/音频/视频等):
如需在请求中添加文件作为参数,选择Files Upload文件上传,点击Browser进行文件选择,在Parameter Name中填入参数名,在MIME Type中选择对应的MIME类型。如png图片对应为image/png,jpg为image/png,mp4为video/mp4。
3.4 添加结果树视图/聚合视图
右键点击“Thread线程组”-“Add添加”-“Listener监听器”-“View Results Tree结果树视图”及“Summary Report聚合视图” 。具体的指标含义在最后一节中再介绍,此处只要无脑添加一下即可。
3.5 执行性能测试/并发测试
点击Thread Group线程组,根据自己的需求设置参数:线程数,循环次数,持续时间等,下图设置并发数为20,循环数为2。按上方的绿色小三角即可运行,按右侧的扫帚图标即可清除历史记录。
3.6 测试报告解读
结果树视图:
在结果树视图可以看到各个请求的具体响应结果,Reponse data-Response Body里可以看到请求的响应内容,也可以查看获取的html界面。
聚合视图:
聚合视图则是对并发测试最好的分析报告。
一般而言,并发测试重点关注的数据有: Samples请求数,Average平均响应时间,Min最小响应时间,Max最大响应时间,Error%错误率及Throughput吞吐量。其中,Error%错误率表示错误请求数/请求总数,Throughput吞吐量表示单位时间完成的请求数。
除了结果树视图和聚合视图,JMeter还提供了很多其他的报告种类,大家可以自己在Lister监听器中尝试添加使用。