当前位置: 首页 > article >正文

【Bug记录】黑马点评使用jmeter进行秒杀抢购时报401以及200后HTTP请求依旧异常的解决办法

项目场景:

学习黑马点评时,老师的优惠卷秒杀编码完成后用到了jmeter来进行压测。老师默认我们具有jmeter使用基础,所以在视频中没有展示一些jmeter配置细节,导致我在实际压测中出现了一些与视频效果不一致的报错,故记录下来,共勉学习。


问题一:Response code:401

发送HTTP请求后,数据库没有变化,而JMeter直接返回状态码401

Thread Name:秒杀抢购单人 2-71
Sample Start:2024-12-12 10:42:06 CST
Load time:1
Connect Time:0
Latency:1
Size in bytes:121
Sent bytes:225
Headers size in bytes:121
Body size in bytes:0
Sample Count:1
Error Count:1
Data type ("text"|"bin"|""):
Response code:401
Response message:


HTTPSampleResult fields:
ContentType: 
DataEncoding: null

如图所示:
在这里插入图片描述


原因分析:

HTTP 状态码 401(Unauthorized)表示“未授权”,通常是出现了以下情况:

  • 未提供认证信息:客户端请求访问需要认证的资源,但没有提供任何认证信息。
  • 认证失败:客户端提供了认证信息,但认证失败了。这可能是因为用户名或密码错误,或者认证令牌(Token)无效或过期。
  • 认证过期:即使之前成功认证过,如果用户的会话过期了,服务器也会返回 401 状态码。
  • 权限不足:用户虽然已经通过认证,但可能没有足够的权限来访问请求的资源。
  • 未配置认证:服务器可能配置为需要特定的认证方式,而客户端没有使用正确的认证方式。
  • 跨域问题:在跨域请求中,如果认证令牌没有正确地随请求一起发送,也可能导致 401 错误。

所以说到这里应该就知道为啥报401了,噢,我没有加请求头呀!


解决方案:

如何在JMeter里面添加请求头呢?

在这里插入图片描述
如图,新建一个HTTP信息头管理器,然后把authorization的信息头加进去
这个请求头可以在redis里面或者网页找到:
在这里插入图片描述
在这里插入图片描述
加上以后就不会报401啦!


问题二:response为200 且数据库正常发生了超卖,但是jmeter所有请求都显示异常

添加完请求头后,又出现了问题二,情况如图:
在这里插入图片描述


原因分析:

这是因为我盲目参照视频增加了json断言 但是使用的是他的默认形态:
可以看到我加了个json断言,但是里面是空的。
如果将这个json断言的元素给删除,那么所有的HTTP请求都会成功:
在这里插入图片描述

那么老师到底为啥要设置一个json断言呢?
他是为了区分成功拿到库存和失败拿到库存这两种情况 所以我们的json断言要考虑这两种情况
在这里插入图片描述
在这里插入图片描述


解决方案:

我们的json断言应该设置success的期望值为true 记得勾选添加期望值
在这里插入图片描述
这样就可以做到和视频里一样的判定效果啦!
在这里插入图片描述
在这里插入图片描述


http://www.kler.cn/a/457360.html

相关文章:

  • 计算机网络——期末复习(5)期末考试样例1(含答案)
  • Elasticsearch: 高级搜索
  • 如何使用axios实现并发请求
  • 供需平台信息发布付费查看小程序系统开发方案
  • 出现 Error during query execution: StatementCallback; bad SQL grammar 解决方法
  • Leetcode 3405. Count the Number of Arrays with K Matching Adjacent Elements
  • Cpp::AVL树的机制详解与实现(23)
  • 产品原型设计
  • IntelliJ IDEA 远程调试
  • 在Ubuntu下通过Docker部署Misskey服务器
  • MATLAB语言的数据库编程
  • 基于STM32F103控制L298N驱动两相四线步进电机
  • 【递归与回溯深度解析:经典题解精讲(中篇)】—— LeetCode
  • 新版IDEA配置 Tomcat
  • 期末算法分析程序填空题
  • 32132132123
  • Leetcode经典题20--长度最小的子数组
  • SpringSecurity使用过滤器实现图形验证码
  • matlab smith自适应模糊PID房间湿度控制
  • 基于TCP的Qt网络通信
  • 【论文解读】Arbitrary-steps Image Super-resolution via Diffusion Inversion
  • UE4 编译报错 “Error LNK2019 : 无法解析的外部符号” 一种可能的原因
  • Flask使用的正例和反例
  • SpringBoot整合篇 05、Springboot整合Redission
  • flask-admin 模型视图(modelView)中重写after_model_delete与on_model_delete
  • 力扣-数据结构-6【算法学习day.77】