打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
记录一次并发测试的bug

大概具体业务逻辑:创建订单时,通过手机号查找用户,如果找到了直接创建订单,未找到用户就去注册新用户。

问题:业务员发现用户列表有多条相同手机号的用户?

产生问题的原因:由于网络异常等原因,用户发起了多次请求并发生成的

下面是我通过jmeter复现bug产生的原因
1)理论上通过手机号码注册新用户时,会去用户表里面查找该用户是否存在,如果存在就会提示该用户已存在。如下所示:


2)创建线程组,给3个线程数

2)由于该接口需要先登陆才能发起请求,所以要添加header信息头

3)添加http请求,并相应填写请求头和请求参数

4)添加集合点(synchronized timer)

  1. * [Number of Simulated Users to Group by]: 5”表示并发量是5。也就是说,Jmeter会等到5个线程都运行到此处时,这五个线程才开始执行后面的操作,先到达的线程将会在此等候。
  2. * [Timeout in milliseconds]:超时时间,即多少毫秒后同时释放已集结的的线程,发送测试请求,如果设置为0,Timer将等待线程数达到了"Number of Simultaneous Users to Group"中设置的值才释放。
  3. 如果大于0,那么如果超过Timeout in milliseconds中设置的最大等待时间(毫秒为单位)后还没达到"Number of Simultaneous Users to Group"中设置的值,Timer将不再等待,释放已到达的线程

5)添加查看结果树


如图所示,发起的三个请求,响应结果都成功了
6)然后我们去数据库查看生产了手机号码相同的三条数据

7)开发解决方案是:在数据库给手机号码字段添加了索引

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
jmeter压测学习29-设置集合点(同步定时器Synchronizing Timer)
Jmeter多用户利用集合点瞬压并发测试
sso单点登录系统的压力测试
JMeter基础之一 一个简单的性能测试
jMeter Thread group 对应的 constant timer
超简单的Jmeter实例(含脚本)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服