使用JMeter进行WebApi接口压测和并发测试

第一步,去官网安装JMeter http://jmeter.apache.org/

1.点击Download Releases

2.下载Windows版本压缩包

3.下载成功后,直接解压。进入到bin目录,运行jmeter.bat

 4.直接报错了,运行不起来,找不到java环境

 5.下载Java JDK https://www.oracle.com/java/technologies/javase-downloads.html

 6.打开后页面,点击JDK Download 

 

7.往下滑动找到64位的安装包

 8.点击同意,安装下载。

 9.下载成功后,直接解压即可。

10.这是下载成功后,直接解压的地址

第二步,设置电脑环境变量

  1.电脑--》右键--》属性

2.高级系统设置---》环境变量

 3.系统环境变量---》新建

4. 添加变量名 JAVA_HOME,

5.添加变更值,这个是解压后的地址。如果JDK是安装程序,那就是安装后的默认地址。

6.复制路径进来,点击确认。

 7.在系统变量里面看到JAVA_HOME,说明添加成功

 8.接下来,再把该路径下面的bin目录地址添加到系统路径下 Path

9. 还是系统变量那一项,往下翻找到Path 选中 点击编辑

 

10. 点击新建==》把bin路径复制进去==》点击确认保存

 

  11.一路保存确认退出系统环境变量设置。

第三步,打开JMeter

 1.再重新打开安装目录运行jmeter.bat

2.如图,证明环境配置成功。等待系统打开,不要关闭此页面。

3.也可以打开CMD,输入java,点击回车按键,显示如下效果图,证明环境变量配置成功

4.系统运行起来的效果

 14.设置界面显示成中文

第四步,进行并发测试

1.测试API在一秒内有N个用户进行接口请求

2.jmeter会提供默认的测试计划Test Plan,直接使用它即可。首先要理解jmeter里面的线程,它每一个用户就是相当于一个线程。然后添加一个线程组,代表用户的数量(个人理解)

3.线程数,代表的就是多少个用户。

4.时间,就是当前多少个用户在1秒内进行的请求。

5.循环次数,代表要进行5次还是1次循环,拿到的结果进行对比。

 6.如上图,我有100个用户在1秒内进行数据请求,而且只循环一次

7.用户添加好了,下一步添加用户的行为。这100个用户,他们要做什么样的请求

8.选中线程组==》右键==》取样器==》HTTP请求 (也可以是其他请求,根据需求来定)

 9.添加请求方式有两种

 10.直接粘贴地址

 11.根据里面要求,挨个填写。服务器名称,如果是本机,就填localhost

 12.如果请求有参数,并且是Json格式的怎么处理。需要添加请求header

 13.选中创建的HTTP请求==》右键==》添加==》配置元件==》HTTP信息头管理器

 14.添加信息头,content-type:application/json; charset=utf-8

15.点击保存

 ​​​​

 16.点击HTTP请求,添加Json请求参数

 17.添加结果树,查看请求结果

18.选中Test Plan==>添加==》监听器==》察看结果树

 19.点击启动执行按键,即可看到请求结果,点击响应数据,可以看到请求返回的结果值

 20.并发测试就结束了,这样就可以知道多少用户在一秒请求的情况下,接口是否能顶的住。对处理的数据正不正确进行分析。压测测试,就是测试接口的响应速度,在单位时间内,接口能成功处理多少个用户发送的请求(QPS)

第五步,进行压测测试

1.压测测试需要添加用户和HTTP请求

2.添加方式跟并发测试添加用户和HTTP请求步骤一样。

3.涉及QPS(每秒查询率)。比如我希望这个接口,在1秒内能处理50个请求(QPS)

4.添加用户(线程组),比如模拟1000个用户在1秒内请求该接口

5.添加HTTP请求

 6.添加结果报告,目的是查看1000个用户在1秒内发送请求完成后,该接口的(TPS)和(QPS)是否到达到理想状态。

7.添加汇总报告(TPS)

 8.添加聚合报告(QPS),最后还需要添加一个QPS定时器

9.添加QPS的定时器步骤

 10.添加QPS的配置。

 11.上图,假如我们希望该接口在1000个用户在1秒内能保证50个请求(QPS),需要设置目标呑吐量。这个怎么计算?里面要求是每分钟的呑吐量,所以拿到希望值50。一分钟60秒。所以就是50*60 (如果这里有错误还请指正)

 12.进行测试,查看QPS 呑吐量是否达到要求。如果能大于50的话,证明接口是可以的了

 最后,总结

并发测试:模拟某个功能在单位时间内,防问人数多的时候,数据是否正常工作。

压测测试:判断接口在单位时间内,是否能正常响应。比如,1秒来1W个请求,看接口能不能响应处理的过来。最后是看报告情况,能否达到理想状态。

只是记录学习的过程。参考了各个大佬的文章,说是抄的也不为过。

大佬的视频教程:https://www.bilibili.com/video/BV1eo4y1Q7sJ 

Json请求参考的文章:https://www.cnblogs.com/testway/p/9448851.html

还有一位大佬的文章:https://www.cnblogs.com/paulwinflo/p/4872018.html

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小丫头呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值