性能测试流程

news/2024/11/30 1:36:45/

性能测试实战

  • 一.资源指标分析
    • 1.判断CPU是否瓶颈的方法
    • 2.判断内存是否瓶颈的方法
    • 3.判断磁盘I/O是否瓶颈的方法
    • 4.判断网络带宽是否是瓶颈的方法
  • 二.系统指标分析
  • 三.性能调优
  • 四.性能测试案例
    • 1.项目背景
    • 2.实施规划
      • (1)需求分析
      • (2)测试方案
    • 3.性能测试执行
    • 4.结果分析

一.资源指标分析

1.判断CPU是否瓶颈的方法

一般情况下CPU满负荷工作,有时候并不能判定为CPU出现瓶颈。比如Linux总是让CPU尽可能最大化使用。
判断CPU瓶颈的条件:CPU空闲持续为0 ;运行队列大于CPU核数(经验值3——4倍)
造成瓶颈的因素:应用程序不合理,硬件资源不足。比如SQL语句引起,则要优化CPU使用过高的SQL语句。

2.判断内存是否瓶颈的方法

一般至少有10%可用内存,内存使用率可接受上限85%。空闲内存过小可能是内存不足或内存泄漏引起的。

3.判断磁盘I/O是否瓶颈的方法

(1)计算每磁盘I/O数。

RAID类型计算方法
RAID 0(Reads+Writes)/Numbers of Disks
RAID 1(Reads+2*Writes)/2
RAID 5[Reads+(4*Writes)]/Numbers of Disks
RAID 10[Reads+(2*Writes)]/Numbers of Disks

经过计算得到的每磁盘I/O数超过磁盘标称的I/O能力,则说明存在磁盘的性能瓶颈。
(2)监控磁盘的读/写。如果磁盘长时间进行大数据量读/写操作,且CPU等待超过20%,则说明磁盘I/O存在问题,考虑提高磁盘I/O读/写性能。

4.判断网络带宽是否是瓶颈的方法

通过减小网络带宽,查看并发用户数,响应时间与事务通过率等性能指标是否不能接受。反之,增加网络带宽,性能指标是否明显提高。
如果性能测试始终报连接超时,实际手工访问正常,可以用ping命令查看网络是否同,如果出现网络严重延迟或丢包,则说明网络不稳定。

二.系统指标分析

1.平均响应时间
如果持续并发性能测试,监控平均响应时间逐渐变长,这时需要借助监控到的资源指标,首先排除资源方面的限制元素,再从应用本身进行定位。
2.并发用户数
一般选用高吞吐量,高数据I/O,高商业风险的业务功能进行并发用户访问测试。
3.事务成功率,超时出错率
4.吞吐量
吞吐量通常由QPS(TPS)和并发数两个因素决定。
QPS(TPS)= 并发数/平均响应时间

三.性能调优

性能优化策略:用空间换时间,用时间换空间,简化代码,并行处理。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结:性能指标是要结合分析的,这种指标都是相关联的,性能调优也是有多方面调优,需要对数据库,算法,网络,代码熟悉,根据积累的经验进行调优。

四.性能测试案例

1.项目背景

2.实施规划

(1)需求分析

  • 新版本上线前
    一般直接在生产环境上进行性能测试,进行压力测试,配置测试。
    测试目标:验证系统在饱和负荷下的业务处理能力;发现系统瓶颈并通过相关参数调优,提高整体系统处理能力。

  • 新需求版本上线前
    一般在测试环境进行性能测试,进行基准测试。
    测试目标:测试整体系统修改前后监控指标的变化;测试新需求是否达到预定的性能指标。

  • 页面测试
    侧重于测试关键业务的整体性能,例如登录,开户,变更等常用业务模块。
    在页面上录制登录,业务操作,受理提交,退出系统的全流程,然后添加验证点,处理关联信息,精简脚本。

  • 接口测试
    侧重抽取底层,业务量大,响应时间要求高的业务模块测试,比如查询,业务开通类接口。
    检查环境,检验报文,准备测试数据。

(2)测试方案

1.测试目标:新需求是否满足设计预期,改造需求是否有性能下降。

场景类型业务模块接口编号场景描述性能指标
接口指标查询43543尝试不同并发下的接口调用,在TPS达到指标要求时,验证响应时间是否达标TPS>=6;平均响应时间<=3000ms
页面群组套餐变更尝试不同并发下测试新旧版本,在TPS达到指标要求时,检验响应时间是否下降>=5%新版本较旧版本的响应时间是否下降>=5%

2.测试环境:环境性能差异,中间件的参数配置都需要记录。硬件基本信息,中间件参数配置,数据库。
3.测试场景:初步确定一个业务的并发场景,比如5并发,10并发,20并发。

序号业务名称业务指标性能指标
1套餐变更TPS>=6,平均响应时间<3000msCPU <=85%,内存空闲率为80%,磁盘I/O没有出现分页现象
2添加成员TPS>=12,平均响应时间<3000msCPU <=85%,内存空闲率为80%,磁盘I/O没有出现分页现象

4.测试数据
5.职责分工
6.测试环境准备
7.测试工具

软件名称说明
Load Runner性能测试工具
soapUI接口功能调试工具
HttpWatch页面连接加载测试工具
Nmon主机资源监控工具

3.性能测试执行

1.录制脚本,录制接口
2…测试策略
3.监控

4.结果分析


http://www.ppmy.cn/news/28320.html

相关文章

【java web篇】Maven的基本使用以及IDEA 配置Maven

&#x1f4cb; 个人简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是阿牛&#xff0c;全栈领域优质创作者。&#x1f61c;&#x1f4dd; 个人主页&#xff1a;馆主阿牛&#x1f525;&#x1f389; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4d…

一起Talk Android吧(第五百零七回:图片滤镜ImageFilterView)

文章目录背景介绍功能介绍图片滤镜图片圆角图片缩放图片旋转图片平移各位看官们大家好&#xff0c;上一回中咱们说的例子是"如何调整组件在约束布局中的角度",这一回中咱们说的例子是" 图片滤镜ImageFilterView"。闲话休提&#xff0c;言归正转&#xff0c…

ChatGPT是如何训练得到的?通俗讲解

首先声明喔&#xff0c;我是没有任何人工智能基础的小白&#xff0c;不会涉及算法和底层原理。 我依照我自己的简易理解&#xff0c;总结出了ChatGPT是怎么训练得到的&#xff0c;非计算机专业的同学也应该能看懂。看完后训练自己的min-ChatGPT应该没问题 希望大牛如果看到这…

Vue(6)

文章目录1. 自定义指令1.1 函数式1.2 对象式1.3 自定义指令常见坑1.4 创建全局指令2. 生命周期2.1 引出生命周期2.2 分析生命周期2.3 总结3. 组件3.1 认识组件3.2 使用组件 (非单文件组件)3.3 全局组件3.4 组件的几个注意点3.5 组件的嵌套3.6 VueComponent 构造函数3.7 一个重要…

LeetCode第334场周赛

2023.2.26LeetCode第334场周赛 A. 左右元素和的差值 思路 前缀和后缀和 代码 class Solution { public:vector<int> leftRigthDifference(vector<int>& nums) {int n nums.size();vector<int> l(n), r(n), ans(n);for (int i 1; i < n; i )l[…

【云原生】k8s中Pod进阶资源限制与探针

一、Pod 进阶 1、资源限制 当定义 Pod 时可以选择性地为每个容器设定所需要的资源数量。 最常见的可设定资源是 CPU 和内存大小&#xff0c;以及其他类型的资源。 当为 Pod 中的容器指定了 request 资源时&#xff0c;调度器就使用该信息来决定将 Pod 调度到哪个节点上。当还…

k8s-资源限制-探针检查

文章目录一、资源限制1、资源限制的使用2、reuqest资源&#xff08;请求&#xff09;和limit资源&#xff08;约束&#xff09;3、Pod和容器的资源请求和限制4、官方文档示例5、资源限制实操5.1 编写yaml资源配置清单5.2 释放内存&#xff08;node节点&#xff0c;以node01为例…

Lighthouse组合Puppeteer检测页面

如上一篇文章lighthouse的介绍和基本使用方法结尾提到的一样&#xff0c;我们在实际使用Lighthouse检测页面性能时&#xff0c;通常需要一定的业务前置条件&#xff0c;比如最常见的登录操作、如果没有登录态就没有办法访问其他页面。再比如有一些页面是需要进行一系列的操作&a…