JMeter压测黑马点评优惠券秒杀的配置及请求爆红问题的解决(详细图解)
目录
一、前言
二、优惠券秒杀压测配置
三、已配置token但是请求全部爆红的问题
四、配置JSON断言后的效果
一、前言
在学习黑马点评优惠券秒杀功能的压力测试时,由于老师没有任何引导而是直接开始测试,所以本博客记录一下JMeter压测黑马点评优惠券秒杀的配置。同时,我还发现了一些比较奇怪的问题,通过搜索其他博客及自己尝试成功解决,所以记录分享一下,希望对你有帮助
下面提供的链接是之前我自己写的两篇博客:
压测软件JMeter安装配置以及创建桌面快捷方式(详细图解)-CSDN博客
使用JMeter进行压力测试(以黑马点评为例、详细图解)-CSDN博客
二、优惠券秒杀压测配置
首先可以把相应的一些名字改一下,这是第二次进行压测,改下名字能更清晰一点。将测试计划改为黑马点评,将之前那次的压测线程组改为缓存穿透
依次按照下图从左往右在黑马点评目录下新建一个线程组
点击一下新建的线程组,将名称、线程数还有Rame-Up时间改为下图所示(和视频中保持一致)
同理从左往右操作,在秒杀抢购单人目录下新建一个HTTP请求
点击一下HTTP请求,将如图所框的数据填写上去,注意这里的/voucher-order/seckill/11的最后数字是按你数据库中存在且要用来进行压力测试的秒杀优惠券id(改成自己id,不是统一的)
按如图步骤在HTTP请求下新建一个HTTP信息头管理器(因为项目由拦截器,这里如果不带上token直接请求肯定是失败的)
点击一下HTTP信息头部管理器,修改名称为登录状态头(和视频一样,不改当然也可以),然后找到底部点击一下添加按钮,然后名称填authorization,值就是填写token(去数据库里找,在前端开发者模式找都行,学到这里就不再赘述了)
然后可以点击保存(好像点击左上角的也可以),但是载入旁边的保存会跳出选择文件保存路径的界面,而左上角的好像不会(我也没搞懂,反正我就点左上角的)
如图按步骤新建查看结果树和聚合报告在HTTP请求目录下(这两个建了就行没有什么要动的)
如图按步骤新建JSON断言在HTTP请求目录下
将JSON断言按如图进行配置,Path exist:填的是$.success(为什么配置这个到第三部分就知道了)
点击一下秒杀抢购单人,右键选择启动(或者是点击上面绿色的箭头启动),测试的结果可以参考第三部分
三、已配置token但是请求全部爆红的问题
先看看我本人一开始出现的情况:
order表出现109条数据
seckill_voucher表相应的秒杀优惠券的stock变为-9
请求全部爆红,但是状态码却是200(这样看的话,说明其实压力测试没问题,包括数据库都是和视频中是一样的,状态码也是200,但是就是所有请求都爆红)。经过查别人的博客发现就是要改JSON的断言,但是我也搞不懂为啥,反正能解决(看别的博客说不管照样学也没问题)
四、配置JSON断言后的效果
数据库就不说了,还是109条order和-9
查看结果树有绿也有红(前面都是红的,只要下拉有绿的就成功了)
可以看到异常类率有72%,但是总比100%异常率好吧
更新补充一下:这个异常率要准确的话,每次压测之前都要在JMeter中清除全部(难怪每次和视频中的异常率对不上)。因为不清除的话异常率是会算上之前的数据的,就不准确了,下面是我新记录的一篇博客
JMeter每次压测前清除全部以确保异常率准确(以黑马点评为例、详细图解)-CSDN博客