求助。秒杀系统 Jmeter 压测,没有生成订单,也没有扣库存

2020-05-27 22:29:45 +08:00
 Issacg

我做的是慕课网上的秒杀项目,内容和这个博客链接里的一样, https://blog.csdn.net/Brad_PiTt7/article/details/90646389#t1

但是,我在完全相同的代码和设置情况下,压测的结果既没有生成订单,也没有扣库存。 我用单个账号测试登录网页秒杀是完全没有问题的。

对了,压测的时候如果 http request 中的参数设置我不勾选上 url encode,就会报 Response code:Non HTTP response code:java.net.URISyntaxException Response message:Non HTTP response message:llegal character in query at index 89: 这个错误

我现在怀疑是压测的时候,没有给 cookie,所以跳到了 login 页面,但是教程视频以及别人的博客都是没有设置也能秒杀成功的。

找了两三天了还是不能发现问题在哪。。实在是太菜了,求助

1816 次点击
所在节点    Java
10 条回复
Issacg
2020-05-28 00:03:16 +08:00
我看了 jmeter 里 respons data 确实是跳到了 login 页,说明它判断 user==null,可是我看 request 是有 token 值的,为什么还是判空呢
gefranks
2020-05-28 00:16:13 +08:00
被测系统有没有 csrf 保护?你抓下人工的 request 和 jmeter 发出的 request 比较下
gefranks
2020-05-28 00:18:35 +08:00
jmeter 带了个 cookie 管理器吧...不传 cookie 怕是不行的
Issacg
2020-05-28 00:29:48 +08:00
@gefranks 因为教程视频,以及网上所有这个项目的博客里都是没有传 cookie 的,而且都还成功了。。。
Issacg
2020-05-28 00:31:19 +08:00
@gefranks 就是差了个 cookie,所以判断是未登录,虽然我是按照视频中把用户的 id 用 token 传进去了,但是被读成参数里,而不是读成 cookie
nuk
2020-05-28 00:37:37 +08:00
@gefranks 不用传 cookie 吧,一个任务里的 http 请求会自动使用之前请求保存的 cookie
gefranks
2020-05-28 01:11:32 +08:00
@Issacg 您怕是得加个 cookie manager 进去, 我看我以前的项目都加了个这个,你要是没 cookie 的话,服务器就认为你这是没登录用户的请求
Issacg
2020-05-28 09:28:49 +08:00
@gefranks 我昨晚用了 cookie manager 传了 cookie,也看到 request 里有相应的 cookie 值了,但还是跳转到登录页面了(捂脸)
gefranks
2020-05-28 10:02:57 +08:00
@Issacg fiddler 抓下请求 看登陆时候手动操作和 jmeter 发的请求到底有什么不同 我自己是碰到过 csrf 的问题
Issacg
2020-05-28 10:19:47 +08:00
@gefranks 好,谢谢,我试试

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/676134

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX