XXXX性能测试报告
说明此次性能测试的目的
比如:
验证XXX功能在N个并发时平均响应时间是多少。
验证XXX功能优化后,性能是否有提升。
验证XXX功能最多能达到多少TPS。
验证促销时,XXX功能最多能支撑多少并发用户。
。。。。。。
- 测试环境
- 说明被压测的是Prod/Test/Uat环境,以及压测机器所在位置等环境相关信息。
- 跟运维了解被压测接口的服务器部署情况后,最好画一个部署架构图,方便后续分析性能问题。
比如:
压测火车票的rest接口时,由于rest接口后端调用的business接口是offline域名的接口地址,压测时要访问两次Nginx,跨过多道防火墙,导致压测时,接口所在服务器压力不大,但是出现访问超时及Socket异常,后面business接口改为通过IP调用,则访问正常。
- 测试前准备工作(了解即可,不用写入测试报告)
- 测试前预估流量峰值,通过预估流量,制定测试计划,如果是Prod,需要提前通知开发/运维根据测试计划调整Prod的环境设置,防止压力太大,直接把Prod压挂了。
- 了解系统限流情况。跟运维确定压测的服务器IP,以方便测试时监控资源消耗情况。
- 了解系统的缓存机制,跟产品确认压测时需要模拟命中百分之多少的缓存。
比如:
开发一般会进行如下设置:增加RMQ消费者,防止队列阻塞,或者关闭更新缓存的开关,以免对第三方接口增加太大压力等等。
- 测试方法/策略
描述采用什么测试方法/策略,描述具体测试过程
常见概念:
TPS/QPS:
每秒处理事务数/每秒处理请求数,公式:总事务数/测试时间 或 总请求数/测试时间
min:最小响应时间
max:最大响应时间
average:平均响应时间
90percent:所有响应时间按从小到大排序,90%请求中取响应时间最大值
失败率:失败事务数/总事务数
瞬时并发:设置集合点,很多用户在集合点同时发起请求
基准测试:
也是单用户测试,对业务模型中的重要业务做单独的测试,获取单用户运行时的各项性能指标,为多用户并发测试和综合场景测试等性能分析提供参考依据。
负载测试:性能测试,负载测试,压力测试,容量测试的区别 - duanxz - 博客园
测试随着请求数的持续递增, TPS增加变缓,直到达到一个最大值(c点),这是系统的最大负载点,这一段被称作负载测试。
测试目标是评估当系统因为突发事件超出日常访问压力的情况下,保证系统正常运行情况下能够承受的最大访问负载压力
压力测试:
测试随着请求数的持续递增,超过最大负载点后,加大并发请求数目, TPS不增反而下降,而资源消耗却更多,直到资源消耗达到极限(d点),这个点可以看做是系统的崩溃点,系统不能再处理任何请求,这一段被称作压力测试。
测试目标是评估可能导致系统崩溃的最大访问负载压力。
测试多用户并发访问同一个应用/模块/数据记录时,是否存在死锁或者其他性能问题,目的:发现系统中可能隐藏的并发访问的问题。
容量测试是性能测试里的一种测试方法,它的目的就是测量系统的最大容量,为系统扩容,性能优化提供参考,节省成本投入,提高资源利用率。
- 测试结果
- 针对测试结果,做简要说明,并描述是否存在不可控因素影响测试结果,比如:网络、涉及第三方接口等。
- 测试结果描述
- 测试结果描述
- 测试结果描述
- 针对不同测试场景,给出图表,通过图表等对测试结果做详细说明。一般包括:并发数、TPS、响应时间、成功事务数、失败事务数、失败率等。
-
- 资源使用情况
-
- 针对不同测试场景,给出图表,通过图表等对资源使用情况做详细说明。一般包括:CPU、内存、网络连接数、网络流量等。
- 资源使用情况,主要侧重描述压测时负载均衡是否正常、资源使用是否在正常范围。
- 对测试结果,做性能分析说明,包括
- 针对测试结果,给出测试结论。
比如:
XXX功能最多可支撑N个用户并发操作。
- 测试中遇到的问题
- 描述测试中遇到的问题/系统报错。
- 说明下哪些问题/报错需要谁和谁来关注。