专栏首页工程师的自我修养之路聊聊性能测试开始前的准备工作

聊聊性能测试开始前的准备工作

之前在我的博客有介绍过完整的性能测试的流程和性能测试需求分析相关的内容,然而在实际的性能测试工作中,测试开始前也有很多的工作要做。

这篇文章,就聊聊性能测试的第一步工作:获取测试需求,到底需要哪些东西。。。

性能测试流程导图

一、相关设计文档

1、系统架构图:了解被测系统的技术架构,包括从客户端到DB的周转流程、应用服务器、中间件等;

2、网络拓扑图:和系统架构图类似,这个更多的是体现在不同层级之间的网络拓扑关系,也可以和系统架构图结合在一起,根据项目具体情况而定;

3、需求说明文档:了解被测系统的业务流程,不同模块间的关系,便于后面的业务场景建模;

4、接口设计文档:大多性能测试都是通过调用模块间的API来进行模拟并发,了解业务模型对应的API,包括协议类型、方法、传参类型、入参、出参等信息是很必要的;

5、数据库表设计文档:测试过程中产生的数据会写入哪个库哪个表,不同的API参数会对哪张表甚至哪个字段产生什么影响,熟悉“数据流”是很必要的一件事情;

二、确认性能指标or目的

1、测试目的

测试目的

说明

并发测试

测试系统在一定条件下可承受的最大并发数

容量测试

测试系统在一定配置下的最大服务能力

配置测试

验证系统在不同配置下的性能表现,为性能调优和扩容提供重要参考

验收测试

验证被测系统是否满足实际的业务需要或者验证系统是否具有它说宣称的性能表现

稳定性测试

验证系统在一定的压力下长时间正确处理请求的能力,一般时间越长,系统稳定性越好

多节点测试

验证系统在服务集群下的一个负载均衡能力

2、测试指标

指标名称

指标数值

指标说明

TPS

100

每秒事务数,很重要的一个指标,衡量系统的处理能力

RT

95%、99%、99.99%

百分比请求的响应时间,即n%以内的RT请求响应时间是多少,百分比越高,RT越低,系统越稳定

error

0.1%、0.01%

错误率,即可接受的请求失败的占比

Cache

90%、95%

缓存命中率:命中率越高,使用缓存的收益越高,系统的性能越好

CPU

75%、90%

CPU使用率,一般来说75%是一个阈值,超过85%就需要重点关注

三、性能测试环境

1、被测系统环境:FAT(生产环境)、UAT(验收环境)、预发布环境等;

2、环境类型:docker容器、虚拟机或者其他类型;

3、web/app/service/db等服务器配置,比如nCnG;

4、配置信息

配置名称

配置信息

JVM堆内存分配

JVM的堆配置的内存大小

最大连接数

中间件、DB的最大连接数

线程池配置

线程池数量、回收策略等

timeout

超时时间

异常/错误重试次数

请求异常或错误时的重试策略、次数

5、服务器/DB登录账号、密码,服务部署路径、日志路径等;

6、挡板/Mock:某些依赖关系较复杂的系统或者模块,是否需要挡板?如果需要挡板,是来提供?

四、预埋数据

1、基础数据:比如电商系统的库存数、SKU、用户信息等;

2、预埋/铺底数据:根据生产实际的数据量对测试环境的DB进行数据预埋,尽量和生产保持一致或可以等量换算(对应的BD实例名);

3、测试数据:测试数据如何生成?数据生成规则,比如加解密、随机生成等;

4、垃圾数据:每轮测试产生的垃圾数据如何隔离或者清理;

5、数据脱敏:如果是在生产环境进行压测,如何进行数据脱敏或者数据隔离防污染策略;

五、接口说明

被测系统业务场景对应接口协议类型,比如:

协议类型

所需提供的信息

HTTP

方法、参数类型、host、port、path、请求响应报文等

SCOKET

host、port、请求响应报文等

DUBBO

服务注册类型(zookeeper)、版本、timeout、重试次数、最大连接数、同步/异步、接口名、方法、参数类型、value等

六、测试开始前确认

1、容器:镜像克隆成功,服务部署完成,且完成功能性校验;

2、压测机:测试机准备完成,并完成性能测试环境的调试验证;

3、工具:相关监控工具等部署设置完成,比如服务器监控工具、DB监控工具等;

4、网络:网络连接通畅(如果有防火墙策略,运维同事应在测试方案评审开始前准备完成,并告知相关人员调试验证);

5、数据:基础数据、预埋数据、测试数据准备完成(正确+可用+数据量级达标);

七、需求变更说明

1、涉及范围:需求变更类型(业务场景、功能变更等)、环境交付日期、服务器地址、配置信息变更等;

2、提前说明:变更导致延期交付或提前交付的具体工时(可以精确到半天或者小时),最晚多久,需要提前通知;

3、应对策略:针对不同变更类型、影响范围、风险程度、时间等因素评估如何处理,比如:打回、需求顺延排期等;

八、交付日期和deadline

1、交付预期时间:方便性能测试同事根据需求紧急情况、优先级等预估工时,进行工作排期;

2、deadline:即生产发布时间,根据交付时间和生产发布时间,确认具体的工作安排(比如从交付到上线只有一周,如何完成任务拆解和细化,不同人员安排不同的工作,里程碑等);

以上内容,仅供参考,具体的测试需求,还需要根据具体的项目类型、团队人员构成、职责等进行合理灵活的取舍。。。

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

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

原始发表时间:2018-09-06

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

我来说两句

0 条评论
登录 后参与评论

相关文章

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

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

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

    最近有些同学找我咨询关于性能测试计划相关的问题,原因是他们公司要做性能测试,Leader要求写一份性能测试计划,苦于之前没做过相关工作,无从下手。这篇文章,结合...

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

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

    写博客的老张
  • 过关斩将-软测常见面试题

    3.软件测试理论,这个大家都不陌生,也是必考的了,应该可以轻松应付。要注意准备下web测试和性能测试这块,现在做web的公司好多。

    测试小兵
  • 性能测试调研:测试的目的是什么?

    测试背景,是新系统还是旧系统改造,评估测试重点,新系统预估可能的性能瓶颈在哪里,旧系统有哪些历史性能问题,旧系统本次进行了哪些改造等。

    互扯程序
  • 持续测试是什么?

    软件开发和交付正在从复杂、独体式应用程序朝更加分布式、以服务为中心的架构转变,前缀的许多依赖关系在编译时解析,而后者的依赖关系在运行时解析。大部分企业应用程序...

    shaonbean
  • 功能测试面试题(一)

    01. 为什么要在一个团队中开展软件测试工作?   因为没有经过测试的软件很难在发布之前知道该软件的质量,就好比ISO质量认证一样,测试同样也需要质量的保证,这...

    用户7466307
  • 软件测试分类有那些,你还知道吗

    回答以下小问题: 1.什么时候进行单元测试? 2.由谁来做单元测试? 3.单元测试的依据? 4.单元测试的通过标准? 5.国内单元测试的现状? 6.如何进行单元...

    用户7466307
  • 黑盒测试VS白盒测试

    这篇文章是我从stackoverflow上翻译过来的,如果以后遇到好的文章我还会继续翻译。

    Peter Shen
  • 【测试】软件测试知识点-期中复习2

    1.1常见的软件测试模型有哪几种 V模型、双V模型(W模型)、H模型、X模型 1.2简述软件测试V模型的流程 需求分析->概要设计->详细设计->编码->...

    瑞新

扫码关注云+社区

领取腾讯云代金券