Jmeter如何进行接口性能测试

2,509 阅读4分钟

在项目进行测试时我们一般都会对接口进行测试,接口测试我们使用到的工具一般是postman和jmeter,postman是个不错的Http请求的模拟工具,但是postman只能用于单次请求不能模拟多用户并发的场景,那性能测试就推荐用jmeter强大工具

postman2.png

  • jmeter简单介绍 Apache JMeter是Apache组织开发的基于Java的压力测试工具,它可以用于测试静态和动态资源例如静态文件、JAVA服务小程序、CGI脚本、JAVA对象、FTP服务器等等。用于服务器、网络或者对象模拟的巨大负载,进行压力测试。

  • jmeter使用步骤 我们举例以一个接口来讲解 请求方式:GET 请求路径:/api/gateway/<gateway_id> 请求参数:在HTTP请求(http request)的头部(header)添加Userid和Token字段作为用户验证字段

请求.png 响应返回JSON格式 参数说明:

返回.png

1. 启动jmeter,首先去官网下载然后解压在文件夹中,在bin下面以管理员身份启动jmeter.bat

启动.png

2. 创建测试计划 jmeter启动以后默认加载测试模板,保存测试计划;你可以点击修改名称为Apitest点击保存,注意:因为不会自动保存所以每次修改的时候都需要点击菜单文件夹进行保存。

新测试计划.png

**3.添加线程组 **

右击左边树中的Apitest,添加-->Threads-->线程组

线程组.png 添加成功后,“Apitest”节点下多了“线程组” 节点,当然这个线程组的名称是可以自己设定的。

线程组成功.png

**4.添加HTTP默认请求(用来配置公共参数,不是真正的HTTP请求) **

右键线程组,选择“添加”→ “配置元件”→“HTTP请求默认值”,点击“HTTP请求默认值”后 添加成功后,线程组”节点下多了“HTTP请求默认值”节点

HTTP请求.png

HTTP请求成功以后,可以配置公共的参数比如说:默认的请求名称、服务器地址、默认的请求路径、保存测试计划。

5.添加HTTP请求信息头(这一项不是必须的)

这里不是必须的哈,一般我们的项目都需要用户信息来验证,就是保证用户是在正常登录的情况下去测试接口 右击Apitest-->添加-->配置元件-->HTTP信息头管理器

6.添加真正的HTTP

右键“Apitest”,选择“添加”→ “Sampler”→“HTTP请求”

HHTPSS.png

添加成功后,出现新的节点“HTTP请求”,就可以填写具体的请求参数了。 参数包括:请求url、请求参数、请求方式等 填写完成,保存测试计划

image.png

7.添加监听器

右键线程组,选择“添加”→“监听器”→“XXXXXXXXX” 可以添加的监听器有很多种,可以添加多个监听器,这里我们添加几个常用的“图形结果”、“察看结果树”、“聚合报告”

监听器.png

添加成功后,“线程组”下增加了几个节点

节点.png

8.试运行

点击执行 试运行.png

可以查看各个“监听器”的结果

结果报告.png

Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值 #Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100 Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间 Median:中位数,也就是 50% 用户的响应时间 90% Line:90% 用户的响应时间 Note:关于 50% 和 90% 并发用户数的含义,请参考下文 Min:最小响应时间 Max:最大响应时间 Error%:本次测试中出现错误的请求的数量/请求的总数 Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数 KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

8.修改线程组的线程数等参数,用于压力测试

点击左侧树形导航中的“线程组”

6666.png

设置上面几个参数,模拟的总的请求数是:线程数*循环次数。执行一下,用“图形结果”监听器查看一下

8888.png

样本数目:总共发送到服务器的请求数.

最新样本:代表时间的数字,是服务器响应最后一个请求的时间.

吞吐量:服务器每分钟处理的请求数.

平均值:总运行时间除以发送到服务器的请求数.

中间值:时间的数字,有一半的服务器响应时间低于该值而另一半高于该值.

偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。