目录
1、性能测试的流程
1、确定性能测试的目标
之前做的压测性能标准、产品说明书的性能需求部分、运营人员提出的性能指标、通过生产环境换算出的性能指标等
(1)接口响应时间不能超过3秒(每个接口的响应时间)
(2)需要达到的tps为1000(每秒钟处理的事物数)
(3)服务器cpu以及内存使用率小于75%
2、执行前的准备工作
(1)了解系统架构:所用到的接口服务器,应用服务器,缓存服务器,数据库服务器等
(2)测试数据的准备:用户数据、商品数据、订单数据等
(3)接口调试:测试单个接口是否正常
(4)压测工具的选择与压测脚本的编写与调试
3、执行压测以及监控各项指标
(1)执行压测脚本:通过在被测系统上不断增加压力,直到被测试系统的性能满足生产性能的要求
(2)系统服务监控:如服务器,数据库,cpu,内存,数据库连接数,tps, error, 平均值,90%百分位,等是否满足性能指标要求
搭建监控软件或平台,可点击
-> 性能监控 <-
合集进行查阅,总有一款适合你
4、性能调优
(1)参与人员:测试、开发、运维、DBA等
(2)基于上一步的监控数据,对性能频颈进行定位、分析,优化
5、性能回归测试
(1)再次执行压测脚本
(2)系统服务监控数据收集
(3)监控数据分析,直到满足性能指标;如不满足则再次进行调优,之后性能回归测试执行
6、编写测试报告
(1)压测概要,涉及到的测试工具,各种指标的介绍
(2)压测服务器信息,cpu,内存,操作系统,用途
(3)压测目的,是否达到性能要求
(4)压测方案,不断对系统施加压力,直到满足性能的要求
(5)压测结果
注意点:
(1)测试执行时,执行多次,取平均结果更为准确
(2)单机并发不够时,采用多机分布式并发,多机分布式不够采用阿里云等进行压测
(3)测试过程,一定要尽可能模拟实际应用场景
2、性能的优化
优化总结(参考)
1、架构的升级(增加reads缓存)
(1)注册接口:获取卡号后,暂存缓存服务器,并进入MQ队列,MQ队列取出后,保存数据库
(2)查询接口:原来读取的mysql数据库,改成读取的redis(缓存)
2、开发代码
(1)代码的逻辑优化
(2)接口返回值的优化,删除多余的返回字段
3、数据库
(1)SQL优化(加索引),查询方式
(2)SQL语句优化
4、硬件配置
(1)增加服务器、数据库cpu
(2)横向扩展增加服务器
5、服务器的部署
(1)资源的分配:把接口服务器上部署的应用挪到其他服务器
(2)根据服务器提供的服务类型不同,分为文件服务器、数据库服务器、应用程序服务器、WEB服务器等
6、服务器负载不均衡
(1)由原来的的择优分配机制改成轮询方式
(2)选择一台最优的服务器镜像拷贝到其他服务器,保证每台服务器对应的程序以及部署都是一样的
7、日志级别
(1)减少了日志量由原来的info改成error(日志级别越低输出的日志内容就越多,对系统性能影响很大)
(2)异步输出比同步输出性能高
3、性能测试关注的指标
1、服务器、数据库等,cpu、内存的使用率,磁盘I/O,网络带宽
2、并发用户数,在线用户数,
3、每个接口响应时间,平均响应时间
4、吞吐量:tps
5、事务成功率,超时错误率