当前位置:首页 > 技术分析 > 正文内容

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

ruisui884个月前 (01-10)技术分析29

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

性能测试经验与思考

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/bps

2.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+grafana

3.1.3. linux 性能监测命令

3.1.4. 分布式集群监测:ganglia

3.1.5. linux/windows: Spotlight

3.2. 监测指标

3.2.1. 服务器端

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

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

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

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

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

4. 性能测试工具

4.1. API

4.1.1. jmeter

4.2. network

4.2.1. iptraf

4.2.2. netperf

4.3. database

4.3.1. sysbench :影响数据库服务器性能的各种因素来评估系统的性能

4.3.2. MYSQL Benchmark Suyite:是单线程的,主要用于测试服务器执行查询的速度

4.4. disk

4.4.1. dd

4.4.2. fio

4.4.3. iozone

5. 性能测试基线

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和内存资源申请控制



扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/133.html

标签: top res
分享给朋友:

“软件测试-性能测试专题方法与经验总结” 的相关文章

Vue3 中有哪些值得深究的知识点?

众所周知,前端技术一直更新很快,这不 vue3 也问世这么久了,今天就来给大家分享下vue3中值得注意的知识点。喜欢的话建议收藏,点个关注!1、createAppvue2 和 vue3 在创建实例时,有很大的区别,具体对比如下://Vue 2 Vue.use({ router, store,...

如何在GitLab上回退指定版本的代码?GitLab回退指定版本问题分析

在Git中,回退到指定版本并不是删除或撤销之前的提交,而是创建一个新的提交,该提交包含指定版本的内容。这意味着您需要将当前代码更改与指定版本之间的差异进行比较,并将其合并到一个新的提交中。如果您没有更新本地代码,并且您希望将 GitLab 仓库回退到指定版本,您可以使用以下命令:git fetchg...

从 Vue2.0 到 React17——React 开发入门

作者:佚名来源:前端大全前言找工作时发现有一些公司是以React作为技术栈的,而且薪资待遇都不错,为了增加生存的筹码,所以还是得去学一下React,增加一项求生技能。因为我用Vue2.0开发项目已经四年了,故用Vue2.0开发项目的思路来学习React。前端项目是由一个个页面组成的,对于Vue来说,...

vue2中路由的使用步骤,你学会了吗?

今天我们来整理下关于vue2中路由的使用步骤:1. 导入 vue 文件和Vue-router文件(注意:vue-router是依赖vue运行的,所以一定在vue后引入vue-router)2. 定义路由组件模板3. 创建路由实例并定义路由规则4. 将路由实例挂载给Vue实例5. 在结构区域定义控制路...

Firefox正针对Vue.js进行优化,下版本响应速度将“显著提升”

IT之家 9 月 7 日消息,据 Mozilla 官方博客发文显示,Firefox 浏览器正针对 Vue.js 进行优化,此前 FireFox 浏览器在面向 Vue 3 时遇到了一些性能问题。▲ 图源 Mozilla 官方博客目前开发人员已经对此进行了解决,在 Firefox 118 内部版本中进行...

原生微信小程序打包成安卓/IOS应用!#小程序开发

原生微信小程序打包成公。好消息,微信小程序可以直接打包成APP了你们知道吗?微信团队近日开发了一个多端开发平台。多端据文档描述,多端开发框架是支持使用小程序原生语法开发移动端应用的框架。开发者可以一次编码分别编译为小程序安卓以及iOS应用,实现多端开发。我们进入多端框架开发的文档,来看看怎么使用微信...