JMeter压力测试案例(商品超卖并发问题)

什么要对接口压测呢?

  1. 压力测试可以用来验证软件系统的稳定性和可靠性,在压力下测试系统的性能和稳定性,发现并解决潜在的问题,确保系统在高负载情况下不会崩溃。
  2. 压力测试可以用来评估软件系统的容量和性能,通过模拟高负载情况下的用户访问量和数据量,测试系统的处理能力和响应速度,找出系统的瓶颈和性能弱点,并进行优化和改进。
  3. 压力测试可以用来确认软件系统的可用性和可用性,通过模拟用户的不同操作场景和异常情况,测试系统的稳定性、响应速度、错误处理能力和容错能力,确保系统能够在不同条件下正常运行,满足用户的需求。
  4. 压力测试可以用来研究新的技术和算法,在高负载情况下测试新的软件系统和技术的性能和稳定性,找出性能瓶颈和优化点,为软件系统的优化和改进提供依据。

相关说明

技术栈: 采用Nginx + Springboot + redis  + JMeter   对接口进行压力测试:

1、Nginx: 做负载均衡  、Nginx会负载到 8080 8081 这两个服务上去 。

2、Springboot  : 后台启动两个实例  8080 和 8081 。

3、redis: 设置key value 商品库存值为600 。   

4、JMeter: 对商品接口进行压测。

注意:  使用Jmeter对商品接口进行压测、重点是使用JMeter压测工具、其他不是重点那就开始吧。 

 

 

JMeter创建压测计划

 1、第一步肯定是先打开压测工具了。

 2、创建线程组

选中测试计划右击添加线程组   Add  Threads(Users)  Thread Group

b9b06d4a171c4930ad56b294c13b6d36.png

 

 

  2、设置线程数和循环次数。我这里设置线程数为200,在一秒执行完200个线程,循环一次

f6cbdb230c794e13a806aab1c6a0d402.png

 这图什么意思呢? 就是说JMeter启动200个线程在一秒内,同时往后台商品接口发送请求。

 

 

 3、创建Http请求

选中线程组 右击   Add Samlper HTTP Request

0fab849c1505474992aaa5669076eaf4.png

 

 

  4、输入协议、IP地址及端口号、选择请求方法、输入路径,内容编码一般为utf-8,输入请求参数

我这里就使用HTTP直接压了, 输入请求类型get 或 post  然后输入请求地址  

4843f31f28f14b169aade651d2e877de.png

 

   5、在压测开始之前 需要添加一个聚合报告

   选中HTTP Request 右击   Add  Listener   Aggregate Repor

   Aggregate Repor:聚合报告  View Results Tree:结果树

8a423e86e9714befae98b25d655bb685.png

 添加完聚合报告和结果树后 ,开始启动运行!

 

 

开始

069961fa67a345a2a73509d7731daae4.png

 你会发现弹框了, 这是询问是否要保存这次压测计划,也就是说下次还可以接着复用。 

9aff5ac1e6f44cb29eafa25b9b1f6909.png

 

 聚合报告

执行完毕的聚合报告, 1秒压完200个请求 刚开始结束了!

c7e5a0af0bdf4e74be39ddb8caff7e91.png

 

后台商品扣减日志

8080服务后台的日志

cfb050c2c8cb4472998ead10d8c6875c.png

 

8081服务后台的日志

49b4a5e265c24e699208ba8dd191a6f1.png

 

总结:  通过JMeter 压测模拟出 商品接口超卖问题, 上图可以看出 我8080服务 已经扣减了库存,在看8081服务 也有相同扣减的数量 。  说明什么问题? 是不是测出了接口存在并发问题。这就相当于我有很用户来抢东西 ,这接口明显就是没有做分布式锁,导致所有线程都来抢导致超卖,所以说JMeter 就是来验证软件系统的稳定性和可靠性。

 

 

 

 

 

 

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

你才是臭弟弟

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

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

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

打赏作者

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

抵扣说明:

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

余额充值