vlambda博客
学习文章列表

软件测试-性能测试专题方法与经验总结

本文 从 性能测试流程,性能测试指标,性能监测工具,性能测试工具,性能测试基线,性能测试策略,性能瓶颈分析方法几个维度,进行知识总结和经验分享;详细见下图总结,欢迎大家补充;

性能测试经验与思考

1. 性能测试流程1.1. 性格规格评审1.2. 资源排期1.2.1. 人力资源1.2.2. 时间计划

· 性能测试介入时机

• 流程可跑通

• 数据无严重问题

• IPD-TR4-第二轮系统测试

1.2.3. 设备资源1.3. 测试方案1.3.1. 测试项1.3.2. 测试场景

· 默认配置

· 基础功能启用

· 最常用操作

1.3.3. 性能测试指标1.3.4. 测试工具1.3.5. 数据准备

· 数据类型

· 数据大小

· 数据量级

· 数据比例分布

1.4. 测试结果与报告1.4.1. 性能优化1.4.2. 迭代验证1.4.3. 结果评审2. 性能测试指标2.1. 网络安全设备性能指标2.1.1. RFC2544:属于2-3层的测试

· 吞吐量:不丢失包情形下 转发的最大数据流量

· 丢包率:不太负载下,丢失包百分比

· 延迟:输入帧最后一份到达输入端口的时间-输出帧第一位到达输出端口的时间

· 背靠背:最大速率发送一定长度的数据包,处理突发数据的能力(数据缓存能力)

2.1.2. RFC3511:4-7层的测试

· TCP每秒新建(CPS):CPS测试的目的是确定最大的TCP连接建立速度

• 描述了在测试CPS时,采用HTTP1.1的协议,并且响应Get请求

• 每秒新建连接数是个性能指标,连接不断建立不断销毁,每秒能建立起来的连接数的意思,因为建立连接的时候需要额外的开销来维护连接表,这个指标用来衡量连接表相关的计算的性能

· HTTP的每秒处理事务数(TPS):TPS是指最大HTTP传输速率,考察被测设备的应用层处理能力

• 在HTTP1.0 协议中,每对请求/应答都使用一个新的连接。每次请求都需要客户端与服务器建立一个TCP连接,服务器收到请求并且返回应答后,会立即断开TCP连接。

而HTTP1.1协议是可以保持这种连接状态,是可持久的

· HTTP有效吞吐量(HTTP Good Throughput)

• 请求的文件大小建议为21K/64K字节的文本文件

· 最大TCP并发连接数

• 在每次反复过程中以低于被测设备所能承受的连接速率发送不同数量的并发连接,直至得出被测设备的最大TCP并发连接数

• 最大并发测试的主要目标是评价被测设备对TCP连接的管理和保持能力。一般来说,设备的内存越大,session表空间越多,对session的管理能力越强,则设备的TCP并发能力越高。

2.1.3. 商用仪表:TestCenter /Avalanche/IXIA/bps2.2. 大数据设备性能测试指标2.2.1. 数据格式

· 结构化/半结构化/非结构化

· 关系型数据库如Oracle、MySQL、SQL Server等不能用于大数据,大部分数据都是非结构化

· 数据预处理:数据清理/数据集成/数据归一化

2.2.2. 数据流

· 处理流程

· 数据接入速度eps

· 数据预处理速度eps

· 数据入库存储速率eps

· 数据查询和展示响应时间

2.3. 数据库性能测试指标2.3.1. 常用的测试单位是每秒事务数(TPS),每分钟事务数(TPM)2.3.2. 响应时间或延迟 用于测试任务所需的整体时间2.3.3. 并发性:工作中的线程数或者连接数2.4. 业务处理产品性能测试指标2.4.1. 响应时间 RT/ART(Response Time/Average Response Time)2.4.2. 页面展现时间2.4.3. 吞吐量2.4.4. TPS: 处理事务2.4.5. 并发数2.4.6. 系统容量3. 性能监测工具3.1. 工具3.1.1. Prometheus技术3.1.2. jmeter+influxdb+grafana3.1.3. linux 性能监测命令3.1.4. 分布式集群监测:ganglia3.1.5. linux/windows: Spotlight3.2. 监测指标3.2.1. 服务器端

· CPU:Total%、Sys%、User%、每个CPU%;

· 磁盘:读写吞吐率(MBps)、读写次数(次/s);读写缓慢程度util%

· 网络:网卡出/入带宽(kbps)、网卡出/入包量(个/s)、TCP连接状态;

· 内存:Menery%、free-memory、SWAP%;

· 进程:进程端口、进程占用内存和cpu资源

4. 性能测试工具4.1. API4.1.1. jmeter4.2. network4.2.1. iptraf4.2.2. netperf4.3. database4.3.1. sysbench :影响数据库服务器性能的各种因素来评估系统的性能4.3.2. MYSQL Benchmark Suyite:是单线程的,主要用于测试服务器执行查询的速度4.4. disk4.4.1. dd4.4.2. fio4.4.3. iozone5. 性能测试基线5.1. 基础版本性能测试数据5.2. 版本变更触发的性能变化参考6. 性能测试策略6.1. 分段性能测试6.2. 迭代折半性能压测寻瓶颈7. 性能瓶颈分析7.1. 分析流程7.1.1. 网络接入层面

· 带宽

· 最大连接数

· 新建连接数

· 网络访问限制

7.1.2. 客户端层面

· 带宽

· 浏览器自身加载和渲染

· 客户端软件性能限制

7.1.3. 服务器端层面

· 系统硬件层面

• 操作系统参数配置

• 连接数

• 文件打开数

• cache

• 端口数

• 操作系统

• cpu性能

• top c

• cpu 绑定是否均衡

• 频繁运算

• 数据库语句 order /group by

• 内存限制

• top res

• 磁盘io

• iostat util%

• 网络io

• rx/tx

· 中间件层面

• 线程池

• 阻塞

• 锁

• 方法耗时

• 连接池

• jdbc 连接池

• jvm

• jvm GC

• jvm FUll GC

• 修改JVM的堆内存参数Xmx

• jstat 每个代大小和gc 频繁程度

• 垃圾回收时间

· 数据库层面

• 连接数

• 连接数增加

• 等待超时增加

• 锁死

• sql语句优化

• 命中率

· 应用程序层面

• 算法

• 缓存

• 同步/异步

• 线程/进程数设置

• 生产者和消费者处理

• cpu和内存资源申请控制




性能监测工具



软件测试-性能测试专题方法与经验总结


性能测试流程



软件测试-性能测试专题方法与经验总结


性能测试工具/策略




网络安全设备性能指标





大数据设备性能测试指标


如果喜欢就点击上面关注!

部分图片、文字来源于网络,如有版权请联系删除!