性能测试fangan

2023-05-16

XX 5.0系统

性能测试方案

修订历史记录

项目概述

1.1 背景说明

1.2 测试目的

为保证在日常运行及大型活动期间,稳定运行、应用快速,对进行性能测试,验证系统是否能够达到业务所需的性能指标,同时发现系统中存在的性能瓶颈,并进行改进,起到优化系统的目的。主要包括以下几个方面:

  • 评估系统的能力,测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力。
  • 识别体系中的弱点:受控的负荷可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地方。
  • 系统调优:重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。
  • 检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中的隐含的问题或冲突。
  • 验证稳定性和可靠性:在一定生产负荷下执行测试一定的时间,用以评估系统稳定性和可靠性。

1.3 参考文档

2 测试环境

2.1性能测试环境拓扑图

2.2服务器配置

服务器

数量

硬件配置

软件环境

作用

压测机1台

1

8C16G

linux

加压

应用服务器

(mzapipress:4台,UAC:2台)

8C 16G*6

Tomcat

应用服务器

数据库服务器

1

8C16G

mysql

数据库

redis

1

8G集群版(2节点)

缓存服务器

ES

1

MQ

1

共用PRE环境

nginx

1

共用PRE环境

文件服务器

1

PRE服务

备注:服务器配置根据业务需要申请

3 测试数据

3.1基础数据准备

脱敏、同步线上数据,保证被压测系统数据库量级和线上一致,

目前压测环境23万用户数据,线上1000万不都是活跃用户,有效用户数23万已足够

3.2 入参数据准备

根据不同的业务场景,对应的具体接口入参可以从数据库提取、代码生成、计数器、随机数等方式来进行参数化,数据唯一性接口保证每次访问入参不重复,避免数据缓存造成压测误差

查询接口:在swagger中找到对应的api,通过参数去数据库导出入参数据。

写接口:根据业务需求造出对应入参数据。

4 指标测试目标要求

4.1 性能指标

类别

工具

判断维度

通过

备注

接口性能

Jmeter

TPS

参照4.2公式

超时概率

小于0.5‰

错误概率

小于0.5‰

响应时间

<200ms

4.2 性能指标计算公式

若在每天的某一时段里有很大的访问量,其他时间相对较少,可以用简单峰值法、二八法或九一法。

举例:

下图为2021年2月3日三亚地区推广力度较大的活动峰值数据,计算举例:

     

 

数据依据:活动流量,2月3号11点到12点一小时内访问量(打开次数)从1100激增到峰值52329,用户数从1500增加到峰值27198,一天内总访问量为9.04万,11点到13点之间总访问量为7.56万,总访问人数4.88万。平均页面停留时长20S

      计算方法:根据活动集中访问的特殊性,按1/9原则计算活动并发数(90%用户量集中在10%时间内完成),52329*90%/3600*10%=130.825个/s,

按2/8原则计算日常并发数: (9.04万*80%)/(8小时*20%*3600)=12.5个/s,

      预估:预估两年内小程序用户数从1000万以30%的增长速度,并发数若要满足未来两年业务需求,活动应满足130.825*(1.3*1.3)=约221个/s,日常满足12.5*1.3*1.3=约21个/s

      平均响应时间计算:响应时间的2-5-8原则,取2秒体验要求,减去网络及各节点时间损耗,接口响应时间<200ms为达标

  TPS=并发数/平均响应时间,当前至少要满足131/0.2=655TPS,两年后:221/0.2=1105TPS,以上指标为最低tps要求。

      错误率:(失败交易数/交易总数)*100%,参考标准:一般成功率不低于99.4%,成功率99.7%为达标  

 

4.3 折算公式

根据节点数、配置、以及性能瓶颈三个维度去估算出压测/线上系数比n(1),目前压测环境和生产环境节点配置一致,数据库及rides配置略低,若压测环境满足业务需求,则理论上生产环境能支撑相同压力

验证:同一个接口在同等并发下统计各环境tps,验证压测/线上tps系数比是否等于n(1)

4.4 系统资源使用指标

资源

监控资源

通过

备注

CPU

CPU sys%

小于或者等于30%

CPU指标主要指的CPU利用率,包括用户态(user)、系统态(sys)、等待态(wait)、空闲态(idle)。

CPU利用率一般维持在70%左右的水平,高峰期达到90%的水平,是不浪费资源,并比较稳定的

CPU sys%小于或者等于30%, 

CPU wait%小于或者等于5%。

CPU wait%

小于或者等于5%

CPU Load要小于CPU 核数。

System\Processor Queue Length

CPUload<4

内存

SWAP利用率

SWAP交换空间利用率要低于70%

太多的交换将会引起系统性能低下。

硬盘

Physical Disk\% Disk Time Logical Disk\% Disk Time

小于等于80%

正常值<10,此值过大表示耗费太多 时间来访问磁盘,可考虑增加内存、 更换更快的硬盘、优化读写数据的算 法。若数值持续超过80 (此时处理器 及网络连接并没有饱和),则可能是内 存泄漏。

5 测试策略

测试概述:

  1. 以各组实际需求,迭代上线前测试产品提出性能测试需求的接口
  2. 每月进行接口分析,进行接口筛选,进行单接口性能测试
  3. 活动期间,按活动需求进行性能测试
  4. 常规迭代接口并发用户不少于200,50并发为一个梯度进行加压,其他线上活动按活动类型做预估判断
  5. 指标值确定,迭代接口指标按经验值,单接口压测写接口1000,查询接口2000;活动接口以活动类型,参考历史最高值,并按4.2计算方法进行测
  6. 测试场景,根据业务需求做以下场景测试

5.1 基准测试

5.1.1 测试说明

目的

  • 验证测试脚本及后台环境、初步检查脚本本身是否存在性能缺陷。
  • 验证低并发单接口CPU,内存,CPUload,带宽,TCP连接数等各项性能指标,查看系统的运行状况并记录相关数做为基础参考。

方法

  • 使用1个并发,分别运行每个脚本,设置脚本的迭代次数n次,验证所有脚本是否运行正确、所有事务是否成功返回,并获取平均响应时间和资源使用情况。

5.2 压力测试

5.2.1 测试说明

目的

  • 发现接口承受压力极限,得到系统性能曲线,了解系统扩展性

方法

  • 在测试过程中,逐渐增加并发数,直到系统的某项或多项性能指标达到安全临界值,例如某种资源已经达到饱和状态等。

5.2.2 测试场景

   不断加大并发数、同时监控CPU,内存,CPUload,带宽,TCP连接数等各项性能指标,当某一指标达到瓶颈记录此时的并发数及性能瓶颈。

5.3 负载测试

5.3.1 测试说明

目的

  • 找出最优并发数及对应的响应时间RT和TPS,验证在现有测试环境下被测系统的最大性能表现

方法

  • 在测试过程中,逐渐增加并发数,当RT和TPS出现交叉拐点 ,此时资源达到最优

5.3.2 测试场景

    不断加大并发数,当RT和TPS出现交叉拐点时记录此时对应的并发数、RT、TPS及相应的性能资源参数。负载测试结果可在5.2压力测试结果文件中分析出最优性能,故此步测试可省略。

5.4 组合场景并发测试

5.4.1 测试说明

目的

  • 验证成本系统在组合场景并发访问系统时的响应时间
  • 验证组合场景并发访问时,环境各性能指标是否在可承范围。

方法

  • 通过对系统体系统功能模块、系统用户的分布和使用频率的分析,来构造系统综合场景的测试模型,模拟不同用户执行不同操作。

5.4.2 测试场景

    根据业务场景合理设计各个接口压力比,在确定比例之后,通过jmeter按比例施加压力,来检测系统在混合场景下性能。

5.5 稳定性测试

按照日常平均使用量的80%,根据实际运行峰值时间段进行7*24小时测试,且资源利用率符合4.2节定义的标准。

5.6单台服务探容测试

目的

  • 验证单台服务器最大处理能力,得到此时单台服务系统指标值,作为单台服务器性能基准值,为横向扩容做指导

方法

  • 对单台服务进行压力测试,在测试过程中,逐渐增加并发数,当RT和TPS出现交叉拐点 ,此时资源达到最优,再持续加压,直到系统的某项或多项性能指标达到安全临界值,例如某种资源已经达到饱和状态等,得到测试结果

6测试范围

6.1 活动接口

综合活动、大型线上活动主要接口,并发数较高、调用率较高的接口,大型活动MZapi所有接口。

6.2 常规迭代接口

和各业务组SDM、TPM一起确认覆盖核心、关键、常用业务,从中提取接口。

6.3混合场景读写接口

根据APM监控,截取一段时间内实际业务调用频率TOP10接口、tps为TOP10接口,响应时长top10。

7进度安排,实际按月或线上活动需求填写

序号

角色

工作项

预计开始时间

预计完成时间

交付产物

一轮测试

开发/运维

环境搭建

环境准备

1

测试

方案

性能测试方案

2

测试

脚本

性能测试脚本

3

测试

数据

数据

4

测试

运行脚本

执行压测

5

测试

报告

一轮性能测试报告

6

测试

优化

需要优化的接口清单

二轮测试

1

开发

优化

优化

测试

运行脚本

执行压测

2

测试

报告

测试报告

3

测试

监测

稳定性测试(持续监测系统情况,有问题及时修复)

4

测试

报告

稳定性测试报告

 8性能测试工具

  • 性能压试工具:JMETER,必要时进行分布式压测
  • 监控工具:APM监控平台、Linux 监控命令
  • 分析工具:jvisualvm、Jprofiler、Linux分析命令

9风险分析

序号

风险类型

描述

等级

缓解策略

1

过程风险

由于加大并发导致接口大批量报错,压测无法进行下去

遇到阻塞问题及时抛出问题一起排查,推动艰难的及时找sdm沟通

2

环境风险

由于场景功能问题或对接系统环境达不到压测要求,致使调用接口不可用,导致的压测场景无法执行。

在环境部署完成后先进行基准测试,保证环境可用。

对接系统环境协调,尽量能满足压测调用

3

人员风险

开发调优资源不足,调优不能及时保障进度

测试人员兼做功能测试,测试进度会相互影响

根据测试方案时间安排,如有冲突提前报备

4

其他风险

由于不可预测原因导致压测不能按计划完成

每日同步性能压测进度,有风险及时抛出

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

性能测试fangan 的相关文章

  • Jmeter性能测试 (入门)

    Jmeter是一款优秀的开源测试工具 是每个资深测试工程师 必须掌握的测试工具 熟练使用Jmeter能大大提高工作效率 熟练使用Jmeter后 能用Jmeter搞定的事情 你就不会使用LoadRunner了 本文将通过一个实际的测试例子 来
  • 从功能测试转型测试开发,薪资涨了20K,1000字讲述转型必经之路...

    身处职场之中 犹如逆水行舟不进则退 想要不被后浪拍死在沙滩上 就要不断学习新知识 接受新事物 要得到更好的发展 就要紧跟发展趋势 不断转型才能保持竞争力 在职场中占有一席之地 转型不是一件容易的事 涉及到转型 革新 就要突破现有的框架 必然
  • 性能测试调优应该注意哪些要点,一般性能测试调优的步骤-Alltesting

    性能测试调优应该注意的要点 要点1 在应用系统的设计开发过程中 应始终把性能放在考虑的范围内 要点2 确定清晰明确的性能目标是关键 要点3 必须保证调优后的程序运行正确 要点4 系统的性能更大程度上取决于良好的设计 调优技巧只是一个辅助手段
  • 全链路自动化测试

    背景 从 SOA 架构到现在大行其道的微服务架构 系统越拆越小 整体架构的复杂度也是直线上升 我们一直老生常谈的微服务架构下的技术难点及解决方案也日渐成熟 包括典型的数据一致性 系统调用带来的一致性问题 还是跨节点跨机房复制带来的一致性问题
  • Selenium WebDriver详解,什么是Selenium WebDriver?

    随着许多测试团队从手动测试转向自动化测试 找到适合他们的框架可能会让人不知所措 大多数转向自动化的团队都听说过Selenium WebDriver 并且知道它是一种用于 Web 自动化的免费开源工具 但是随着开源测试框架的激增 许多人怀疑这
  • 【性能测试】第五篇

    JMeter环境安装 安装JDK 1 JDK下载 官网下载 http www oracle com 提示 下载时注意电脑系统是32位还是64位 桌面 计算机 右击 属性 查看 系统类型 2 安装JDK 双击安装包进行安装 所有步骤选择默认选
  • 新系统如何确定性能测试目标

    前提 新系统上线没有明确数字对比 性能需求非可度量 完成目标 1 服务器的某些资源已耗尽 如CPU 内存 句柄 数据库存在大量slow query 2 需求证明系统是可水平扩展的 即增加服务器配置系统TPS 吞吐量 能上去
  • 阿里测开的性能测试技术笔记:如何快速上手压测工作

    新年第一个工作日 继续整理之前的技术笔记 前面通过三篇的内容 将自动化测试相关的技术笔记做了整理汇总 这篇内容 主要是我刚开始做性能测试时的一些记录 对新手或者刚进入一个新项目的同学 应该有所帮助 一般我们在刚介入一个项目时 我认为可以从如
  • 如何进行性能分析

    一 性能分析的常用手段 1 空间换时间 利用内存缓存从磁盘上取出的数据 CPU可以直接访问内存 从而比从磁盘读取数据更高的效率 2 时间换空间 当空间成为瓶颈的时候 切开数据分批次处理 用更少空间完成任务的处理 3 分而治之 把任务切分 分
  • 7年经验之谈 —— Web测试是什么,有何特点?

    Web测试是指对Web应用程序进行验证和评估的过程 以确保其功能 性能和安全性符合预期 Web测试具体包括以下几个方面的内容 功能测试 验证Web应用程序是否按照需求规格说明书中定义的功能正常工作 功能测试包括输入验证 表单提交 页面导航
  • jmeter之命令行模式(Non-GUI Mode )

    新浪围脖 gt o蜗牛快跑o 企鹅交流群 gt 79642549 命令行模式优势 适用于Windows和linux执行机 与os无关 命令行容易扩展 比如上集成到jenkins平台 用命令行更加容易 适用于高并发测试 测试开始时 conso
  • 性能测试基础

    性能测试基础知识 性能测试的定义 衡量软件的性能需要考虑的三点内容 性能测试的分类 压力测试 负载测试 容量测试 强度测试 配置测试 基准测试 并发测试 性能指标 响应时间 吞吐量 服务器资源占用 以下内容比较枯燥 但是作为基础无法绕开 就
  • 软件测试终极难题:先学性能测试还是先学自动化测试?

    应该先学性能 还是应该先学自动化 这个问题是很多想要提升的人都会比较犹豫的 因为不知道怎么学更好 更合适 那今天我们就来给大家讲讲这个问题 在选择这两个方向的时候 我们应该先明确测试方法都是做什么的 性能测试首先我们是要解决这个软件功能已经
  • Redis缓存知识-穿透、击穿、雪崩

    目录 一 Redis介绍 二 Redis做缓存服务器 三 缓存穿透 击穿 雪崩 1 缓存穿透 2 缓存击穿 3 缓存雪崩 大家好 我是杨叔 每天进步一点点 关注我的微信公众号 程序员杨叔 获取更多测试开发技术知识 今天分享的内容是 Redi
  • Jmeter:使用代理录制脚本

    目录 前言 介绍下各设置项 前言 当我们想要录制并回放特定应用程序或网站的交互时 使用JMeter的代理是一种常见且有效的方法 通过配置JMeter代理 它可以拦截并记录客户端与目标应用程序之间的HTTP或HTTPS通信 然后生成对应的测试
  • 【性能测试】第四篇

    主流性能测试工具 1 Loadrunner HP Loadrunner 是一种工业级标准性能测试负载工具 可以模拟上万用户实施测试 并在测试时可实时检测应用服务器及服务器硬件各种数据 来确认和查找存在的瓶颈 支持多协议 WEB HTTP H
  • 3. 性能测试之目标评估

    文章目录 前言 一 模型1 根据日活计算目标QPS 1 原则 2 事例 二 模型2 根据压测数据评估最大支撑并发 1 原则 2 事例 3 备注 三 模型3 根据压测数据评估服务器资源 1 策略 2 备注 四 模型4 评估用户并发或峰值并发
  • Golang RPC性能测试

    最近刚好要使用Golang的RPC 因此对Golang标准库的RPC进行了一下测试 看看其性能到底如何 RPC服务端和客户端的实现完全使用RPC的net rpc标准库 没有经过特殊的优化 主要针对下面三个场景进行测试 测试之前需要先说明一下
  • 性能测试的基本流程

    1 性能测试需求分析 项目经理 业务 架构专家 产品经理 高级性能测试工程师 开发经理 2 性能测试计划 高级性能测试工程师 项目经理 架构师 产品经理 3 性能测试准备 性能测试工程师 外部支持 网络工程师 系统管理员 测试服务器和被测试
  • 【2024全网最火最全性能教程】一文搞懂性能测试!

    性能测试概念 我们经常看到的性能测试概念 有人或称之为性能策略 或称之为性能方法 或称之为性能场景分类 大概可以看到性能测试 负载测试 压力测试 强度测试等一堆专有名词的解释 针对这些概念 我不知道你看到的时候会不会像我的感觉一样 乱 一个

随机推荐

  • CAS单点登录服务器的搭建与验证码功能的实现(一)

    CAS单点登录服务器的搭建与验证码功能的实现 xff08 版本6 1 X xff09 前言环境准备下载项目并编译配置https登录 前言 关于SSO单点登录的原理和CAS的认证流程百度上有很多 xff0c 这里不再啰嗦 xff0c 直接上具
  • CSS的块级元素和内联元素区别

    块级元素 xff08 block level element xff09 lt center gt lt h1 gt lt ul gt 等 内联元素 xff08 inline element xff09 xff1a lt a gt lt i
  • Linux操作系统下查询NVMe盘符、Slot ID和Bus ID的对应关系

    在拆卸NVMe PCIe 固态硬盘时 xff0c 需要查询Linux操作系统下NVMe盘符 Slot ID和Bus ID的对应关系 操作步骤打开操作系统命令终端 依次执行cd sys bus pci slots和ll命令 xff0c 找到如
  • 图像特征之傅里叶描述子

    使用C 43 43 opencv获取轮廓的傅里叶描述子 傅里叶描述子是一种图像特征 xff0c 具体来说 xff0c 是一个用来描述轮廓的特征参数 其基本思想是用物体边界信息的傅里叶变换作为形状特征 xff0c 将轮廓特征从空间域变换到频域
  • 性能测试1

    概念 xff1a 验证高并发下的系统表现 价值 xff1a 1 性能评估 2 性能验证 2 容量检查 xff08 检查最多能同时支持多少 xff0c 容量预期 xff09 3 性能测试 xff08 边压边调试 调优 多加机器 xff09 4
  • linux /var/log/httpd 清理错误日志方法

    报错 xff1a 启动httpd报错 Job for httpd service failed 没有空间 linux中var磁盘满了的问题 BugSayNo的博客 CSDN博客 var目录满了有什么影响
  • 接口测试流程

    接口测试全流程笔记 接口测试基础 什么是接口 xff1f 一个物体用于和外界连接的部分 汽车油箱口 手机的充电口 计算机硬件 xff1a USB HDMI 计算机软件 xff1a 为了实现代码复用 xff0c 或者说功能重复使用 本地调用
  • 接口测试啊

    接口测试全流程笔记 接口测试基础 什么是接口 xff1f 一个物体用于和外界连接的部分 汽车油箱口 手机的充电口 计算机硬件 xff1a USB HDMI 计算机软件 xff1a 为了实现代码复用 xff0c 或者说功能重复使用 本地调用
  • 性能测试方案

    XX 5 0系统 性能测试方案 修订历史记录 1 项目概述 1 1 背景说明 1 2 测试目的 为保证在日常运行及大型活动期间 xff0c 稳定运行 应用快速 xff0c 对进行性能测试 xff0c 验证系统是否能够达到业务所需的性能指标
  • 新歌能测试方案2

    性能测试方案 文档编号 xff1a 文档名称 xff1a 编 写 xff1a 审 核 xff1a 批 准 xff1a 批准日期 xff1a 性能测试项目组 修改历史 版本 日期 修改说明 修改人 备注 目 录 项目背景 1测试目的 1测试范
  • python函数--len()方法

    len 方法 作用 xff1a 返回字符串 列表 字典 元组等长度语法 xff1a len str 参数 xff1a str xff1a 要计算的字符串 列表 字典 元组等 返回值 xff1a 字符串 列表 字典 元组等元素的长度 实例 1
  • 接口测试用例模板

    接口测试用例模板及参考
  • 什么是性能测试

    性能测试基本概念 1 1 什么是性能测试 测试系统是否可以满足指定的性能 xff08 多并发访问下 xff09 要求 测试系统在 34 多并发 34 状态下的 34 表现 34 第一次理解 xff1a 我的某个功能在100 34 人 34
  • 测试用例学习

  • 测试用例学习

  • 性能测试fangan

    XX 5 0系统 性能测试方案 修订历史记录 1 项目概述 1 1 背景说明 1 2 测试目的 为保证在日常运行及大型活动期间 xff0c 稳定运行 应用快速 xff0c 对进行性能测试 xff0c 验证系统是否能够达到业务所需的性能指标
  • 性能测试fangan

    XX 5 0系统 性能测试方案 修订历史记录 1 项目概述 1 1 背景说明 1 2 测试目的 为保证在日常运行及大型活动期间 xff0c 稳定运行 应用快速 xff0c 对进行性能测试 xff0c 验证系统是否能够达到业务所需的性能指标
  • 性能测试fangan

    XX 5 0系统 性能测试方案 修订历史记录 1 项目概述 1 1 背景说明 1 2 测试目的 为保证在日常运行及大型活动期间 xff0c 稳定运行 应用快速 xff0c 对进行性能测试 xff0c 验证系统是否能够达到业务所需的性能指标
  • 性能测试fangan

    XX 5 0系统 性能测试方案 修订历史记录 1 项目概述 1 1 背景说明 1 2 测试目的 为保证在日常运行及大型活动期间 xff0c 稳定运行 应用快速 xff0c 对进行性能测试 xff0c 验证系统是否能够达到业务所需的性能指标
  • 性能测试fangan

    XX 5 0系统 性能测试方案 修订历史记录 1 项目概述 1 1 背景说明 1 2 测试目的 为保证在日常运行及大型活动期间 xff0c 稳定运行 应用快速 xff0c 对进行性能测试 xff0c 验证系统是否能够达到业务所需的性能指标