使用JMeter来测试一个接口是否线程安全,此接口用于领取积分或者优惠券,此前发生过用户盗刷的情况,实际上之前一些活动的代码没有加同步快处理多线程场景,造成了这些问题。不多说,直接上图。
- 1、新建一个线程组
- 2、新建一个http Sampler
- 4、新建一个循环控制器
- 5、新建几个监听器 - 查看结果树-生成概要结果-用表格查看数据
- 6、设置线程组线程数,和循环次数,此处设置300个线程,5S内执行完
- 7、设置http请求相关信息,URL,post方式以及对应的请求参数
- 8、简单的接口测试基本上就差不多了,复杂场景可以具体问题具体分析,下面开始测试,查看结果数中某一项可以看到结果
- 9、之前出现的问题的时候,代码查了一遍,没有逻辑漏洞。但是出现了用户刷出多笔积分的情况,初步判断是线程出了问题,有人在使用工具刷接口。后面对对应的接口上都做了线程同步处理,基本上修复了这个bug。