性能测试流程
一个完成的性能测试流程包含以下步骤:
前期分析、测试计划、测试方案、测试环境搭建、测试数据准备、测试脚本开发、场景的设计、实现和执行、性能监控、分析结果、定位瓶颈、性能调优、回归测试和性能测试报告
前期分析
前期分析包括:系统分析、业务分析、需求分析
系统分析
要从系统的层面对被测系统进行分析工作,通常完成以下工作:
-
系统类型分析:从性能角度分为两种:
-
IO密集型:系统本身的业务处理逻辑简单,往往压力集中在内存读写、磁盘读写和网路带宽方面
-
CPU密集型:系统本身的业务处理逻辑复杂,需要进行大量的计算、逻辑处理工作的,接口层面往往是CPU密集型
-
-
系统架构分析:需要了解被测系统的架构实现、网络拓扑结构图等相关信息
-
系统部署情况:需要了解系统环境部署情况,包括:服务器操作系统、服务器、中间件、数据库等相关软件的版本信息、配置等,找到对应的监控工具
-
系统实现情况:包括但不限于 开发语言、框架、通信协议
-
系统调用情况:系统内部的子系统和接口调用关系、第三方系统和接口的调用情况
业务分析
-
区分待测和不测的业务,一般根据业务的功能和性能的优先级来区分业务的性能测试优先级别,然后根据测试时间的长度最终确定待测和不测的业务。
-
功能:需求文档中功能的优先级别
-
性能:根据业务的被使用人次、频率来确定优先级别
-
如果没有足够的线上统计数据支撑,可以考虑2-8原则进行分析
-
分析待测的业务
-
分析业务的流程,会影响到脚本开发和场景设计,任何一个功能都至少需要一个脚本
-
分析业务的特征
-
需求分析
结合相关的数据、方法确定下性能测试的需求,性能测试需求主要确定:
-
负载用户数:不同业务功能的负载用户数一般不一样
-
在线用户数
-
负载用户数
-
-
响应时间:一般遵循258原则,但是随着时代网速、行业、功能有变化
-
TPS:吞吐量指标,一般可以通过PV这样的数据做简单的估算,如10h的pv总量为10W,则
-
平均估算: TPS=pv/t
-
2-8原则:TPS= pv*0.8 / t*0.4
-
根据业务特征:一般高并发可以考虑2-8原则的5-10倍即可
-
-
需求数据来源:
-
需求文档/客户
-
线上监控数据
-
同类竞品
-
产品、测试、运营
-
测试计划
who when what
测试方案
事情的具体展开方式
测试环境搭建
搭建手册和常规环境搭建
测试数据准备
了解业务,掌握SQL:通过业务接口自动化或SQL语句实现,初始化之后一般都会备份导出,以后再导入即可
测试脚本开发
场景设计、实现和执行
JMeter、LoadRunner
性能监控
nmon