性能常识 压测时接口都按照顺序去执行对吗?

卡丁车卡丁丁 · 2024年04月21日 · 最后由 sxl5519 回复于 2024年04月23日 · 5088 次阅读

比如我完成一个下单的流程,从浏览器里抓出来的请求顺序分别是 A,B,C,D,E

但是一个页面里面可能有很多接口,这些接口也不是互相依赖的,而是相互独立的,只是恰好在一个页面当中而已,这种时候压测场景还把这些请求按照顺序去发起压测,是不是不符合实际?

共收到 3 条回复 时间 点赞

以下是个人的一点理解,
首先得看你压测的目的是什么,如果是为了测试下单流程的性能,那应该先考虑的是这个下单场景相关的接口。
其次在这个下单场景中,接口肯定是有调用顺序的,这里应该存在前后依赖。比如下单前需要先登录或者获取库存等。
对于你说的页面中相互独立的接口,我理解是否是类似于前端调用获取数据字典此类的接口? 如果你的性能目标是为了压测核心场景,那么可以考虑按照场景顺序来。
另外前端抓包获取的顺序和各个接口调用顺序可以不同,比如前端需要获取一些字段的信息再下单,那么这里就存在顺序。但是如果直接调用后台接口,则可以直接在入参中传入而无需考虑顺序问题。

从浏览器里抓出来的请求顺序分别是 A,B,C,D,E

多次抓取,这个请求顺序一样吗?如果不一样的话,就没有必要按照前端请求顺序发起了,实际上可能前端也是多个组件并行发的请求。
既然接口相互独立,那么后面的接口也就不依赖前面接口的响应,个人感觉没必要严格按照顺序发起压测。
不过为了严格模拟用户场景,总的来说我觉得还是按前端实际情况来吧。

这个问题,核心点还是,性能测试需要根据用户的使用场景进行
比如现在的压测场景为下单
后端接口可以简单分为 3 个,商品详情接口,创建订单接口,支付接口
如果压测脚本,接口采用按顺序执行,那么这 3 个接口请求比例就是 1:1:1
但实际用户使用场景,这 3 个请求比例肯定不是 1:1:1.可能是详情 100,下单 50,支付 30;比例就是 10:5:3
我们要在压测脚本中模拟出 10:5:3,那肯定就不是按照顺序来请求了
当然那如果压测场景,接口比例是 1:1:1 的,按顺序来也没问题,不过在压测过程中如果依赖接口响应失败就会导致后续接口都请求失败,但用户使用场景,是可以继续请求的,所以还是不建议按顺序来
个人见解,欢迎探讨

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