性能测试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 的相关文章

  • 从功能测试转型测试开发,薪资涨了20K,1000字讲述转型必经之路...

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

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

    以下只是针对我在使用中 问题对应的解决方案 可能不适用于所有 1 启动录制 浏览器卡着不动 原因1 浏览器版本过高 不兼容 官方文档的说明是支持ie11 firefox24 chrome30 我降低版本后firefox24正常了 chrom
  • 测试工程师在团队中没地位怎么办?

    为什么会出现这样的问题 首先自查 为什么自身 组织在团队中的地位没那么高 影响力没那么大 在一个项目团队中 每一个角色都是不可或缺的 若出现某一个角色地位比较低 不被信任 那这个角色就要检查自己了 从测试的角度来看 如果一个开发同学经常犯错
  • DCDC常见问题之输出带载问题

    DCDC常见问题之输出带载问题 DCDC在目前的电子产品中使用越来越常见 但是出来的问题也越来越多 下面我们将介绍DCDC输出常见的问题 该问题是一个系列 今天我们介绍的是DCDC设计时 空载下一切正常 但是带载时 输出电压出现波动等各种问
  • 前端性能测试工具

    WebPagetest 是前端性能测试的利器 可以为我们提供全方位的量化指标 包括页面的加载时间 首字节时间 渲染开始时间 最早页面可交互时间 页面中各种资源的字节数 后端请求数量等一系列数据 还可以自动给出被测页面性能优化水平的评价指标
  • 如何进行性能分析

    一 性能分析的常用手段 1 空间换时间 利用内存缓存从磁盘上取出的数据 CPU可以直接访问内存 从而比从磁盘读取数据更高的效率 2 时间换空间 当空间成为瓶颈的时候 切开数据分批次处理 用更少空间完成任务的处理 3 分而治之 把任务切分 分
  • 性能测试:工具篇:Jmeter实时可视化平台搭建

    部署 influxDB 首先 pull influxBD镜像 拉取是1 8的版本 虽有2 0 的版本 但我还是喜欢站在巨人的肩头前行 debugfeng debugfeng sudo docker pull influxdb 1 8 1 8
  • 性能测试场景设计之负载场景

    负载场景 文章目录 负载场景 一 什么是负载测试 二 负载测试场景设计 1 阶梯式加压 插件 jpgc Standard Set 结果 2 第二张阶梯式 Concurrency Thread Group 结果 分析 提示 以下是本篇文章正文
  • 使用Jmeter进行http接口做功能、性能测试

    使用Jmeter进行http接口做功能 性能测试 1 使用Jmeter进行http接口做功能 性能测试 在测试移动APP时 会有很多接口需要做测试 我在这里介绍一下对HTTP接口做功能 性能的测试 首先我们会从开发人员拿到接口数据 1 1
  • 工作3个月,我的测试工作感悟

    项目感想 经过将近3个月以来的迭代版本的测试 这段时间以来的工作和以前有点不同 迭代版本时间紧 任务重 同时对质量的要求更高 每天的工作时间安排的非常紧 一个星期的任务需要完成这个星期的测试任务 同时回归上个星期的bug 这样的工作流程 我
  • 性能测试常见指标有哪些

    性能测试的常见指标包括 1 响应时间 Response Time 用户发送请求到系统返回结果所花费的时间 2 吞吐量 Throughput 单位时间内系统处理的请求数量 通常以每秒请求数 SPS或TPS 表示 3 并发用户数 Concurr
  • 服务器终端性能测试之GPU burn压力测试

    GPU burn 测试GPU 1 下载软件 https github com wilicc gpu burn wget https codeload github com wilicc gpu burn zip master 2 解压缩 u
  • 【性能测试】第四篇

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

    LoadComplete是一个负载测试工具 用于为Web服务器和服务创建和运行自动负载测试 它可以在手机 网站和web应用程序上设计和运行性能 压力和负载测试 您不需要有编程知识 创建一个负载测试只需要几秒钟的时间 接下来我们通过LoadC
  • Linux性能监控 -- vmstat命令

    文章目录 示例 字段说明 示例 输入vmstat命令后 第一个参数表示每1秒获取一次服务器资源 第二个参数表示总共获取10次 若第二个参数不设置 则表示持续获取服务器资源 字段说明 数据项 含义 r 表示有多少任务需要CPU执行 通常与后5
  • loadrunner负载生成器;

    负载生成器 Load Generators 是脚本生成的负载引擎 相当于加压机 主要功能是生成虚拟用户进行负载 在默认的情况下使用本地的负载生成器来运行脚本 但是每生成一个虚拟用户 需要话费负载生成器大约2M 3M的内存空间 通常运行CON
  • 性能测试连载 (5)-jmeter 下的性能指标监听

    咨询微信 uhz2008 性能指标监听 概述 性能测试过程中 想要得到比较靠谱的性能数据 就不得不对各种性能数据进行动态监听 jmeter中提供了很多性能数据的监听器 我们通过监听器可以来分析性能瓶颈 本文用吞吐量模式 演示200线程的负载
  • Jmeter 课程笔记(五)集合点、思考时间和三种断言

    添加集合点 Http请求 右键 定时器 Synchronizing Timer Numberb of Simulated Users to Group by 并发用户数量 默认为0则与线程组的线程数一致 Timeout inmillisec
  • 测试工具73款

    我们将本文的软件测试工具分为4类 1 Web应用测试工具 2 网站安全测试工具 3 跨浏览器测试工具 4 移动应用测试工具 注 工具排名没有任何意义 1 Web应用测试工具 我们列出了一些在Web应用程序上执行性能 负载和压力测试的关键工具

随机推荐

  • STM32学习心得十一:ST-LINK调试原理+软硬件仿真调试方法

    记录一下 xff0c 方便以后翻阅 主要内容 xff1a 1 xff09 JTAG SWD调试原理 xff1b 2 xff09 软件仿真调试 xff1b 3 xff09 ST LINK硬件仿真调试 官方资料 xff1a STM32中文参考手
  • python函数--介绍

    Python 函数 函数是组织好的 xff0c 可重复使用的 xff0c 用来实现单一 xff0c 或相关联功能的代码段 函数能提高应用的模块性 xff0c 和代码的重复利用率 你已经知道Python提供了许多内建函数 xff0c 比如pr
  • 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 验证系统是否能够达到业务所需的性能指标