问答 关于梯度压测的一些问题

小夫 · 2021年09月22日 · 最后由 小夫 回复于 2021年09月23日 · 5609 次阅读

想知道这个怎么计算请求接口多少次 起始人数是 5 最多人数 10,每次持续 30 秒
那是不是每秒请求 5 次持续 30 秒,然后每秒请求 10 次持续 30 秒。计算公司 5*30+10*30=450 次

但是实际访问接口跟这个次数也对不上啊。

共收到 15 条回复 时间 点赞

我理解 5 人并发,是指 5 个人同时发起请求的意思,不是说每秒 5 个请求。每秒处理多少个请求,还取决于服务器接口处理的速度。
举个例子,每个请求平均 0.5 秒可以返回,那么每秒可以处理 5*2=10 个请求,30 秒就是 300 个请求;反之如果每个请求平均 2 秒返回,则每秒可以处理 5*0.5=2.5 个请求,30 秒就是 75 个请求。

请求多少次,不止和并发用户数有关,还跟持续运行时间、每次请求的思考时间、接口响应时间有关。

比如:(为了更清晰的说明问题, 以理想状态考虑)

  • 1 并发用户,持续运行 1 分钟,接口响应时间为 1 秒,思考时间为 0,那么 1 分钟 60 次请求。
  • 1 并发用户,持续运行 1 分钟,接口响应时间为 2 秒,思考时间为 0,那么 1 分钟 30 次请求。
  • 1 并发用户,持续运行 1 分钟,接口响应时间为 1 秒,思考时间为 1,那么 1 分钟 30 次请求。
  • 1 并发用户,持续运行 10 分钟,接口响应时间为 1 秒,思考时间为 0,那么 1 分钟 600 次请求。

这些都是性能测试的基础,建议看看:
性能概念不清楚的,建议阅读:服务端性能测试 - 入门指南
性能测试工具学习的,建议阅读:服务端性能测试 - 工具篇 (Jmeter)

这个问题换个角度想,如果"想知道这个怎么计算请求接口多少次 起始人数是 5 最多人数 10,每次持续 30 秒
那是不是每秒请求 5 次持续 30 秒,然后每秒请求 10 次持续 30 秒。计算公司 5*30+10*30=450 次"这里的思路是正确的,那是不是压力测试只要设计好就能知道 TPS 了,根本不用测😂
所以答案很简单,那算法只是你期望的最理想值,而实际结果跟服务器的性能相关,那也正是测试的意义所在。

在路上 回复

好的,多谢,我学习下您贴的文章。
但是这个实际人数和目标人数为啥差这么多您知道吗

MarvinWu 回复

多谢,通俗易懂。但是还想问个问题,
这个实际人数为什么和目标人数差这么多?

小夫 #12 · 2021年09月23日 Author
Jerry li 回复

嗯嗯,谢谢回复。我现在理解了

小夫 关闭了讨论 09月23日 11:04
小夫 重新开启了讨论 09月23日 11:05

擦,没办法删评论吗

小夫 回复

首先我没用过图里的工具,从字面上获取到的信息是测试执行了 11 分钟多点,并发用户最大为 178,而设定目标是 1000。
大概率是加压策略的问题,用户数是可以直接计算出来的,性能再差,不妨碍我们继续加压,只不过很多用户可能无法得到响应而已。

MarvinWu 回复

大佬知道怎么删除我的回复吗

小夫 回复

进入回复内容编辑页,左下角有删除按钮:

小夫 #13 · 2021年09月23日 Author
陈恒捷 回复


我没有这个选项啊

小夫 回复

。。。那就是 bug 。

你要删哪些楼层的,和我说一下,我帮你删吧。

陈恒捷 回复

4 楼,我贴了微信截图那个,,,多谢哈

小夫 回复

微信截图已删

bug 也记录了:https://github.com/testerhome/homeland/issues/136

陈恒捷 回复

好的,谢谢

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册