专栏首页工程师的自我修养之路性能测试从零开始实施指南——测试报告篇

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

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

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

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

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

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

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

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

一、测试背景

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

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

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

二、测试目的

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

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

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

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

三、测试范围

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

业务归属模块

业务涉及场景

对应服务

订单

创建订单

order-service

取消订单

购物车

添加购物车

删除购物车

商品

商品列表

product-service

商品详情

支付

余额支付

payment-service

支付宝支付

微信支付

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

四、预期指标

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

①、业务性能指标

即预期的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:表格统计

demo2:图形化展示

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

七、阶段进度

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

阶段

事项

开始时间

结束时间

状态

责任人

需求阶段

需求评审

完成

多方参与

系统架构图

完成

开发

需求调研

完成

性能测试人员

准备阶段

环境交付

完成

运维、开发

应用部署

完成

运维、开发

数据准备

完成

开发、DBA、测试

脚本开发

完成

性能测试人员

实施阶段

执行压测

未完成

性能测试人员

服务监控

未完成

运维、测试

数据收集

未完成

性能测试人员

结束

报告评审

未完成

多方评审

八、问题记录

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

九、测试结论

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

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

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

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

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

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

本次性能测试通过。

本文分享自微信公众号 - 工程师的自我修养之路(Engineer_Way),作者:写博客的老张

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 聊聊性能测试中的基准测试

    在性能测试中有一种测试类型叫做基准测试。这篇文章,就聊聊关于基准测试的一些事儿。。。

    写博客的老张
  • 性能测试从零开始实施指南——流程篇

    由于新公司业务快速发展带来的流量突增以及技术负债各方面,性能的问题就开始急速冒头,这点很多创业阶段的中小型公司都存在该问题,表现在如下几个方面:

    写博客的老张
  • 聊聊基准测试的可行性方案

    上篇文章介绍了基准测试的一些思路和方法策略,这篇聊聊基准测试的MVP(最小可行性方案)。

    写博客的老张
  • 功能测试怎么转自动化测试

      我接触了太多测试同行,由于多数同行之前一直做手工测试,现在很迫切希望做自动化测试,其中不乏工作?5年以上的同行。?我?从事软件自动化测试已经近十年,接触过底...

    小老鼠
  • 腾讯TMQ在线沙龙回顾|测试过程管理

    测试过程管理 活动时间:2017年10月26日 qq视频分享 活动介绍:TMQ在线沙龙第三十二期分享 本次分享的主题是:测试过程管理 共有83位测试小伙伴报名参...

    腾讯移动品质中心TMQ
  • TMQ在线沙龙第三期回顾

    Android自动化测试框架Uiautomator 活动时间:2016年6月30日 QQ群视频交流 活动介绍:TMQ QQ群沙龙第三期分享圆满结束啦~本次分享的...

    腾讯移动品质中心TMQ
  • Win10事件思考

    这是一个有代表性的事件,它关系到软件的测试策略问题。近些年来,随着敏捷开发,持续集成,自动化测试,DevOps等理念的不断普及和深入,软件的测试策略也随之发生改...

    muntainyang
  • 性能测试从零开始实施指南——流程篇

    由于新公司业务快速发展带来的流量突增以及技术负债各方面,性能的问题就开始急速冒头,这点很多创业阶段的中小型公司都存在该问题,表现在如下几个方面:

    写博客的老张
  • app 里的 A/B 测试简介

    Android 开发者
  • 微服务架构下:集成服务性能测试从0到1实践分享

    各位好,我叫王捷豪,在测试行业已经有7年,曾从事过酒店、空气质量、电网领域,目前是国内某互联网医疗公司研发中心基础平台部一名测试开发工程师,多年的测试工作对测试...

    测试开发技术

扫码关注云+社区

领取腾讯云代金券