性能测试fangan

news2024/11/25 2:21:41

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

其他风险

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/45720.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

对辊柱塞式成型机总体设计

目 录 摘 要 I Abstract II 第一章 绪论 1 1.1选题背景及意义 1 1.2国内外型秸秆谷物发展概况 2 1.2.1国外发展现状 2 1.2.2国内发展现状 2 1.3对辊柱塞式成型机的发展概况 6 1.3.1对辊柱塞式成型机的发展展状况 6 1.3.2对辊柱塞式成型机的成型机理 7 1.3研究主要内容 9 第二章…

UGUI性能优化学习笔记(一)网格重建

一、基本概念 在正式学习UGUI性能优化之前&#xff0c;需要先了解一些基本的概念 网格 无论是3D物体还是2D物体&#xff0c;都是由网格绘制而成。需要绘制的网格越多&#xff0c;性能消耗越大。 将Unity编译器调整到Wireframe模式&#xff0c;可以查看当前场景元素的网格组成…

冯诺依曼体系结构及操作系统的认识

目录1.前言2.冯诺依曼体系结构2.1.结构构成2.2.硬件分析2.2.1存储器的作用2.2.2CPU2.3.实际分析3.操作系统3.1.是什么3.2.为什么3.3.操作系统怎么进行管理3.3.1管理的本质3.3.2管理的方法3.4.系统调用3.5.最终体系1.前言 为什么现代计算机都被称为冯诺依曼结构计算机&#xff1…

C#运算符执行顺序对照表

C#运算符执行顺序对照表&#xff1a;在线查看C#运算符执行优先级别 窍门&#xff1a; CtrlF 快速查找 C#运算符优先级&#xff0c;是描述在计算机计算表达式时执行运算的先后顺序。 先执行具有较高优先级的运算&#xff0c;然后执行较低优先级的运算。 例如&#xff0c;我们常说…

k8s整合kong

k8s整合kong Kong网关的发展历程 ​ Kong网关起源于2007年&#xff0c;由Augusto、Marco、Michele三人在意大利的一个小车库中开发&#xff0c;当时命名为Mashup平台。在随后7年的时间里&#xff0c;Mashup平台逐渐占据API网关市场的主导地位。2017年10月&#xff0c;Mashup平台…

引擎入门 | Unity UI简介–第2部分(2)

本期我们继续为大家进行Unity UI简介&#xff08;第二部分&#xff09;的后续教程 本篇内容 3.动画按钮滑入 文章末尾可免费获取教程源代码 本篇本篇Unity UI简介&#xff08;第二部分&#xff09;篇幅较长&#xff0c;分为八篇&#xff0c;本篇为第二篇。 3.动画按钮滑入…

如何安装Torch7在Ubuntu20.04 ( CUDA10.1 和 CUDNN7.6.5)

先展示安装成果&#xff0c;东西没啥&#xff0c;就是很麻烦&#xff0c;特别是安装torch7库&#xff0c;下载不下来&#xff0c;断断续续的。 1. 首先&#xff0c;安装CUDA 10.1CUDNN7.6.5。切记&#xff1a;cudnn不要装cudnn8.X&#xff0c;好像跟torch不是很匹配。另外就是g…

省市县:数十万数据集PM2.5面板数据柵格数据(1998-2019)

1、数据来源&#xff1a; https://sites.wustl.edu/acag/datasets/surface-pm2-5/ 2、时间跨度&#xff1a;1998-2019 3、区域范围&#xff1a;中国各省、各城市、各区县 4、指标说明&#xff1a; 根据Global/Regional Estimates (V5.GL.02)&#xff0c;计算出国内PM2.5数…

车载电子专用DC-DC方案PL5501

PL5501是一个同步4开关Buck-Boost能够调节输出电压的控制器高于或低于输入电压。PL5501运作输入电压范围从3.6 V到32 V (36 V Maximum)以支持各种应用程序。PL5501 buck采用恒ON时间控制&#xff0c;上位机采用升压和升压两种操作方式负荷和线路调节。开关频率可以设置为150kHz…

在字符串两侧填充指定字符ljust()与rjust()方法

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 在字符串两侧填充指定字符 ljust()与rjust()方法 选择题 以下python代码输出正确的一项是? str"abc" print("【显示】str原始数据&#xff1a;") print("【执行】…

Spark框架

Spark计算速度 Hadoop的多个job之间的数据通信是基于磁盘的 Hadoop偏存储&#xff0c;其MR框架&#xff0c;是基于磁盘的计算&#xff0c;多个MR作业之间的数据交互&#xff0c;依赖于磁盘的IO&#xff0c;这会影响计算性能。 job1&#xff1a;读取磁盘文件&#xff0c;MR计算…

网页JS自动化脚本(三)查找定位页面元素的多种方法

当然定位元素不止一个方法,下面总结一些常用的方法 父元素定位 a.undertips-link>span我们看到父元素是第8代的a,那么先定位到a,然后再通过a定位到子元素span,可以看到1 of 1 ,匹配上了唯一的元素 祖父元素定位 div#lm-new>a>span可以看到进对第7代的div元素进行定位…

承上启下:基于全域漏斗分析的主搜深度统一粗排

1. 背景 1.1 概述 淘宝主搜索是一个典型的多阶段检索系统&#xff0c;主要分为召回、粗排、精排等阶段。召回阶段&#xff0c;由文本召回、个性化等多路召回构成&#xff0c;输出商品量级约10^5&#xff1b;粗排阶段&#xff0c;需要从三路召回集合中分别进行筛选&#xff0c…

[附源码]SSM计算机毕业设计校园自行车租售管理系统JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Vue 打包优化之 externals 抽离公共的第三方库

使用 vue/cli 脚手架构建的 Vue 全家桶项目&#xff0c;默认配置下&#xff0c;打包后会把 vue、vue-router、axios、vuex、element-ui、echarts 等公共库打包在一起&#xff0c;导致基础 chunk、vendor 包体积特别大&#xff0c;有时一个文件能达到 3-5MB&#xff0c;这会大大…

ThinkPHP和uniapp开发的CRM售后管理系统(客户、合同、工单、任务、报价、产品、库存、出纳、收费)

ThinkPHP和uniapp开发的CRM售后管理系统无加密的开源源码(可用于自营外包项目(多主体)、可用于外包定制开发项目) 主要功能&#xff1a;客户、合同、工单、任务、报价、产品、库存、出纳、收费&#xff0c; 适用于&#xff1a;服装鞋帽、化妆品、机械机电、家具装潢、建材行业…

NR CSI(三) CQI

微信同步更新&#xff0c;欢迎关注同名modem协议笔记 这篇主要看下CQI的相关内容&#xff0c;CQI在spec上描述的内容比较少&#xff0c;主要是和调制方式和码率相关&#xff0c;所以这篇的内容也比较简短。先看下CSI Report Quantity 上报测量量。 很早之前有人问我你知道各个…

【面试题】DOM

1. DOM的本质 DOM(Document Object Model)&#xff0c;文档对象模型。DOM的本质是从HTML文件中解析出来的一棵树。DOM的数据结构是树形结构&#xff08;DOM树&#xff09; 2. DOM节点操作 2.1 获取DOM节点 <!DOCTYPE html> <html lang"en"> <head…

【毕业设计】30-基于单片机矿井瓦斯_气体浓度_烟雾浓度报警设计(原理图+源代码+仿真+答辩论文+答辩PPT)

【毕业设计】30-基于单片机矿井瓦斯/气体浓度/烟雾浓度报警设计&#xff08;原理图源代码仿真答辩论文答辩PPT&#xff09; 文章目录【毕业设计】30-基于单片机矿井瓦斯/气体浓度/烟雾浓度报警设计&#xff08;原理图源代码仿真答辩论文答辩PPT&#xff09;任务书设计说明书摘要…

Kafka(二)- Kafka集群部署

文章目录一、安装部署1. 集群规划2. 虚拟机前置准备工作&#xff08;1&#xff09;配置IP&#xff08;2&#xff09;修改主机名称和hosts文件&#xff08;3&#xff09;关闭防火墙&#xff0c;关闭防火墙开机自启&#xff08;4&#xff09;克隆虚拟机3. 集群部署&#xff08;1&…