测试内容
疫情物资抢购项目提供了三种解决方案来比较系统性能:
1.利用MySQL的update行锁实现悲观锁。
2.MySQL加字段version实现乐观锁。
3.添加Redis缓存;
使用了JMeter在保证错误率为零的基础上,进行压力与性能测试(实验设置的是10秒内产生3000个请求或酌情5000个请求),分析每秒处理请求数、平均响应时间、等参数,最后得出相应结论。
测试步骤
1.建立线程组
并发数:5000/s,采样一周期
2.添加随机管理器,设置随机生成访问ID
代码出处:https://www.cnblogs.com/feng-1314/p/7115605.html
import java.util.UUID;
UUID uuid1 = UUID.randomUUID(); //获取UID的值
vars.put("id",(uuid1.toString()).toUpperCase().replaceAll("-",""));
//去掉UUID的“-”,再赋值给order_id 运行获取的参数就是:3F2504E04F8911D39A0C0305E82C3301
//vars.put("order_id",(uuid1.toString()).toUpperCase());
//这个就是不用去掉UUID的“-” 运行获取到的参数就是:3F2504E0-4F89-11D3-9A0C-0305E82C3301
POST请求
测试结果
1.悲观锁缓存结果:
qps=(1000/6378)*3000=470
2.乐观锁
qps=(1000/756)*5000=6613
响应时间记录周期:200ms
3.Redis的缓存结果:
qps=(1000/91)*3000=32258
响应时间记录周期:100ms