性能测试从零开始实施指南——测试报告篇

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 单机水位是多少、满足业务需求要上多少机器、什么时候该加机器、什么时候应该减机器。双11等大促场景需要准备多少机器,既能保障系统扩展性和稳定性,又能节约成本。

性能测试的目的,是通过模拟真实的业务场景和海量的用户请求及数据对业务系统进行多种场景的测试,来验证各个服务的性能表现是否满足实际的业务需要。


长期来看,性能测试最终的目标是为生产环境容量规划提供可靠地参考数据,使生产服务的可用性、扩展性和稳定性更高,让技术更好的服务业务,创造更多的价值


从整个性能测试的生命周期来说,测试报告的产出就意味着一次完整性能测试项目的结束。那么,怎样的测试报告,才是真正具有价值的呢?


这篇文章,聊聊一份完善且具有价值的性能测试报告,都包含哪些内容。。。

 

关键词:信息完善,简洁明了,有图有数据有结论!!!即让每一个业务服务能够清晰地知道:


单机水位是多少、满足业务需求要上多少机器、什么时候该加机器、什么时候应该减机器。双11等大促场景需要准备多少机器,既能保障系统扩展性和稳定性,又能节约成本。


一份完善且具有价值的性能测试报告,主要包含如下几个方面:


一、测试背景


首先要阐述本次性能测试的背景,即被测系统类型,面向哪些用户,具备什么特点,为什么要进行性能测试,预期的一些指标等等。

比如:为了保证“双十一”大促期间,系统能稳定运行且保障业务的高可用,进行性能测试。


核心:评估系统性能、分析性能变化趋势、定位系统瓶颈风险、协助规划系统容量。


二、测试目的


测试的目的要根据测试背景来分析设定,比如:


1、线上服务由于流量过高某部分应用挂了,那测试目的就是:定位瓶颈、分析调优验证;

2、运营做了拉新和新的渠道拓展,那测试目的就是:评估系统性能是否满足新的线上业务;

3、系统架构由集群技改为微服务,那测试目的就是:验证稳定性、可用性、单实例容量,为线上服务扩容提供容量规划数据;

 

三、测试范围


比如,梳理出测试的业务域、场景、对应的服务:


业务归属模块 业务涉及场景 对应服务
订单 创建订单 order-service
取消订单
购物车 添加购物车
删除购物车
商品 商品列表 product-service
商品详情
支付 余额支付 payment-service
支付宝支付
微信支付


或者,以思维导图的形式进行说明也可以,如下图:


640.png

 

四、预期指标


这里的性能指标包含如下两项:


①、业务性能指标


即预期的TPS、RT、99%RT、请求成功率(一般默认请求成功率≥99.99%)。


②、硬件性能指标


即服务端资源耗用指标(也称为水位),常规的资源监控指标有:CPU使用率、Memory使用率、系统IO、网络IO等。


③、应用流量指标


比如:核心业务链路的QPS、Redis的命中率、DB的峰值QPS等数值。

 

五、实施说明


实施说明主要包含如下两项:


1、环境配置


服务名称 数量 配置 备注
gateway server 5 4C8G 网关服务,身份验证和请求转发
web server 2 4C8G
app server 2 8C8G
Redis 2 12G 哨兵模式,一主一从
DB 2 8C16G 一主一从


2、测试策略


本次性能测试所采用的测试策略,比如:


探测系统性能拐点,需要阶梯式压测;


探测系统在可接受的性能指标下最大的处理能力,需要采用负载、容量测试策略;


验证系统的稳定性和高可用,需要采用稳定性、高可用测试策略;


验证系统在不同配置下的性能表现,一般采用配置测试策略;

 

六、测试结果


测试结果展示,依据具体的测试范围、目的来选择性展示。展示的方式可以是多种形式,最常见的是图表类型。


举个例子:单链路基准的场景,一般只需要以表格形式罗列出测试结果即可,做个记录。全链路压测,可以用相对具体的图表来体现测试的结果。


但最重要的,还是结论!以及最终在线上环境所展现的价值。


demo1:表格统计


640.png


demo2:图形化展示


640.jpg


PS:报告中具体贴多少的图表,以公司实际的流程和技术文化为准。比如银行金融业就比较重视,互联网企业,一般只需要核心的数据证明即可。

 

七、阶段进度


这里主要指的是从需求阶段到结束,各个阶段的工作进展以及资源安排,建议采用看板的方式,及时更新进度,方便推进工作的开展。示例如下:


阶段

事项

开始时间

结束时间

状态

责任人

需求阶段

需求评审



完成

多方参与

系统架构图



完成

开发

需求调研



完成

性能测试人员

准备阶段

环境交付



完成

运维、开发

应用部署



完成

运维、开发

数据准备



完成

开发、DBA、测试

脚本开发



完成

性能测试人员

实施阶段

执行压测



未完成

性能测试人员

服务监控



未完成

运维、测试

数据收集



未完成

性能测试人员

结束

报告评审



未完成

多方评审

 

八、问题记录


压测过程中的问题进行记录汇报,也是很有必要的,测试同学懂得都懂。。。下面是一个示例的问题记录表格,请参考。

640.png


九、测试结论


还记得本篇文章最开始是怎么说的么?性能测试的最终目的是,让每一个业务服务能够清晰地知道:


单机水位是多少、满足业务需求要上多少机器、什么时候该加机器、什么时候应该减机器。双11等大促场景需要准备多少机器,既能保障系统扩展性和稳定性,又能节约成本。


下面是一个比较万金油的描述,具体的结论还需要根据具体的压测需求和场景来描述:


本次性能测试在性能测试环境进行,所有涉及场景已测试完毕;测试过程中发现的缺陷已全部修复并验证通过。


A-service服务在水位为50%时最大TPS为200,业务预期指标为2000TPS,生产环境现有同等配置服务器8台。


为满足本次活动的营销增长需要,线上建议部署12台机器(10台正常提供服务,2台留作buffer)经过评估,当前性能表现满足预期性能指标,达到上线要求。


本次性能测试通过。

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
4天前
|
数据采集 缓存 测试技术
性能测试中,除了迭代次数,还有哪些因素会影响测试结果?
性能测试中,除了迭代次数,还有哪些因素会影响测试结果?
9 2
|
8天前
|
缓存 监控 测试技术
全网最全压测指南!教你如何测试和优化系统极限性能
大家好,我是小米。本文将介绍如何在实际项目中进行性能压测和优化,包括单台服务器和集群压测、使用JMeter、监控CPU和内存使用率、优化Tomcat和数据库配置等方面的内容,帮助你在高并发场景下提升系统性能。希望这些实战经验能助你一臂之力!
22 3
|
1月前
|
测试技术
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
本文介绍了如何使用Pytest和Allure生成自动化测试报告。通过安装allure-pytest和配置环境,可以生成包含用例描述、步骤、等级等详细信息的美观报告。文章还提供了代码示例和运行指南,以及重构项目时的注意事项。
162 1
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
|
18天前
|
缓存 监控 数据挖掘
C# 一分钟浅谈:性能测试与压力测试
【10月更文挑战第20天】本文介绍了性能测试和压力测试的基础概念、目的、方法及常见问题与解决策略。性能测试关注系统在正常条件下的响应时间和资源利用率,而压力测试则在超出正常条件的情况下测试系统的极限和潜在瓶颈。文章通过具体的C#代码示例,详细探讨了忽视预热阶段、不合理测试数据和缺乏详细监控等常见问题及其解决方案,并提供了如何避免这些问题的建议。
40 7
|
2月前
|
缓存 Java 测试技术
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
使用JMeter对项目各个接口进行压力测试,并对前端进行动静分离优化,优化三级分类查询接口的性能
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
|
3月前
|
消息中间件 Kafka 测试技术
【Azure 事件中心】使用Kafka的性能测试工具(kafka-producer-perf-test)测试生产者发送消息到Azure Event Hub的性能
【Azure 事件中心】使用Kafka的性能测试工具(kafka-producer-perf-test)测试生产者发送消息到Azure Event Hub的性能
|
4月前
|
弹性计算 Prometheus Cloud Native
SLS Prometheus存储问题之Union MetricStore在性能测试中是如何设置测试环境的
SLS Prometheus存储问题之Union MetricStore在性能测试中是如何设置测试环境的
|
3月前
|
测试技术 索引 CDN
hyengine wasm业务性能测试问题之测试设备如何解决
hyengine wasm业务性能测试问题之测试设备如何解决
|
4月前
|
测试技术
软件测试自动化策略与实施:提升质量与效率的关键
【7月更文挑战第25天】软件测试自动化是提高软件质量和效率的重要手段。通过明确自动化测试目标、选择合适的测试工具、制定详细的测试计划、建立稳定的测试框架以及持续优化与迭代,企业可以构建高效、可靠的自动化测试体系。在实施过程中,注重与项目团队的沟通与协作,确保自动化测试与项目开发的紧密结合,共同推动产品质量的不断提升。
|
4月前
|
测试技术 Python
我们假设要测试一个名为`http://example.com`的网站,并对其进行简单的GET请求性能测试。
我们假设要测试一个名为`http://example.com`的网站,并对其进行简单的GET请求性能测试。