近期接触了支付场景的性能测试,发现了很多严重的并发问题,要不是有性能测试,对公司会造成很大的损失:
1、余额不够时候,能否支付成功?
比如:卡余额有100块钱,商品1块钱,10并发循环20次,由200笔请求,会生成100笔支付成功的订单,96笔支付失败的订单,以及生成4笔失败的订单。
生成100笔成功订单是因为扣除了钱,生成成功的订单。
4笔失败是因为在并发情况下,查询时候有余额,但在真正扣除时候发现余额不足。所以订单回滚为失败。
96笔是查询余额不足,直接支付失败,变成待支付订单。
2、库存不够时候,能否支付成功。
库存有100个,余额有150个,请求20并发10循环200笔,生成成功订单100个,剩下余额为50块。
3、当库存为0时候,页面会不会给出提示。