自研某产品想要上华为的严选商城,作为厂商需要满足三方测试公司要求的性能测试业务,先来看看性能测试报告的要求。
思路:
根据性能测试场景的设计要求,思考该要求性能测试的目的是分两大类,负载测试和压力测试。负载测试通过不断增加压力,寻找系统处理能力的极限。压力测试即测试系统处于压力情况下应用的性能表现。
目的:
为了上严选市场,没有相关的性能指标要求,只需要跑相关数据即可。同时没有运维和后端开发协助性能调优,本次就只是拿到测试数据。
实现:
购买与配置三方测试机构指定的云环境,给严选商城加分,同时能直观查看性能监控
因产品上华为严选商城的同时还需要做鲲鹏系统兼容性的验证。购买了以下服务器资源
设置性能场景
jmeter录制执行
私聊发脚本,有三个坑需要注意
1、代理设置的端口跟已有的端口不要重复;
2、jmeter生成的证书,要重新导入证书,不然会出网络错误;
3、出现了华为云服务器下产品的录制会出现网络错误,阿里云服务器下产品录制能正常使用,卡了一个星期百度无果。后来发现浏览器的控制台有报错,根据浏览器自己的报错更改了配置就能录制成功。错误为:
Chrome浏览器:The request client is not a secure context and the resource is in more-private address …
按这位博主的操作更改配置,即完成了录制。/p/04dedb927d54
执行时需要注意,性能测试一定要删除多余的接口请求。
执行的时候一定要无GUI执行脚本
jmeter -n -t 脚本文件.jmx -l 报告文件.jtl
jtl用jmeterUI工具的监听器可打开得到相关的数据。
性能测试总结
根据获取到的参数进行相关总结,比如:
登录并发:
50并发平均响应时间和错误率达标。且继续加大并发时(至300并发),响应时间较长,没有错误率,也符合要求。所以并发登录场景的最大负荷为300并发。领料单查询场景:
因为500并发平均响应时间为(2615.45ms<3s)和错误率达标,应用服务器CPU和数据库内存占用符合要求,所以50并发也符合要求。且继续加大并发时(至600并发),出现报错(如场景2中截图),所以领料单查询场景的最大负荷为500并发。访问调拨单管理平台:
因为500并发平均响应时间为(2615.45ms<3s)和错误率达标,应用服务器CPU和数据库内存占用符合要求,所以50并发也符合要求。且继续加大并发时(至600并发),报错(87.18%),所以访问调拨单管理平台场景的最大负荷为500并发。物料清单查询:
50并发平均响应时间和错误率达标,应用服务器CPU和数据库内存占用符合要求。且继续加大并发时(至500并发),也符合要求。继续加大并发时(至600并发),报错(如场景4截图),所以物料清单查询场景的最大符合为500并发。混合业务操作:
100/200并发平均响应时间和错误率达标,应用服务器CPU和数据库内存占用符合要求。且继续加大并发时(至500并发),没有错误率,响应时间超过13s;继续加大并发时(至600并发),响应时间过长(25343.06ms),所以混合业务操作场景的最大符合为500并发。
混合业务操作疲劳压测:持续2小时10并发平均响应时间和错误率达标,应用服务器CPU和数据库内存占用符合要求。混合业务操作-优化场景:
增加网络带宽之后,能有效解决服务器报错问题。
从700并发开始,持续增加并发量,直到2000并发业务请求,发现服务器并没有报错,CPU内存消耗均在正常范围,服务器处理能力TPS保持在68.7/s,表示服务处理事务能力基本保持稳定;而响应时间从7s增加到了22s,后台监控数据来看,网络带宽增加到30MB/s之后,不能再上升,响应时间增加的原因仍在网络瓶颈,后续资源扩容。目前系统的主要性能瓶颈在网络带宽。CPU、内存消耗均在正常值范围。登录场景的最大负荷为300并发。领料单查询场景的最大负荷为500并发。访问调拨单管理平台场景的最大负荷为500并发。物料清单查询场景的最大符合为500并发。混合业务操作场景的最大符合为500并发。
本次性能测试用Jmeter工具实际模拟xxxx 系统 6个场景。各测试场景中各个事务响应时间均可满足业务需求,服务器资源CPU负载稳定,内存使用率稳定,未出现任何异常现象,性能测试通过,可商用发布。