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

  • 资深测试老鸟整理,性能测试-常见调优详细,卷起来...

    目录 导读 前言 一 Python编程入门到精通 二 接口自动化项目实战 三 Web自动化项目实战 四 App自动化项目实战 五 一线大厂简历 六 测试开发DevOps体系 七 常用自动化测试工具 八 JMeter性能测试 九 总结 尾部小
  • Python web自动化测试 —— 文件上传

    文件上传三种方式 一 查看元素标签 如果是input 则可以参照文本框输入的形式进行文件上传 方法 和用户输入是一样的 使用send keys 1 2 3 4 5 步骤 1 找到定位元素 2 输入文件路径 ele driver find e
  • 性能测试工具有哪些?原理是什么?怎么选择适合的工具?

    前言 本篇文章主要简单总结下性能测试工具的原理以及如何选型 性能测试和功能测试不同 性能测试的执行是基本功能的重复和并发 需要模拟多用户 在性能测试执行时需要监控指标参数 同时性能测试的结果不是那么显而易见 需要对数据进行分析 这些特点决定
  • 小程序自动化测试框架Minium——框架介绍和环境搭建

    一 Minium 简介 minium 是微信团队为小程序专门开发的自动化框架 我们可以用它来做小程序的UI自动化测试 但是它的能力却不仅仅在于UI自动化 正是得益于官方订制打造 所以对于小程序很多原生内容和特性的支持自然也是非常独到的 比如
  • JMeter入门教程(13) --事务

    文章目录 1 任务背景 2 任务目标 3 任务实操 3 1 1 事务控制器 3 2 2循环控制器 1 任务背景 JMeter中的事务是通过事务控制器实现的 为了衡量服务器对某一个或一系列操作处理的响应时间 需要定义事务 下面我们详细介绍在J
  • 吐血整理,性能测试-Jmeter分布式压测实战(超细详解)

    目录 导读 前言 一 Python编程入门到精通 二 接口自动化项目实战 三 Web自动化项目实战 四 App自动化项目实战 五 一线大厂简历 六 测试开发DevOps体系 七 常用自动化测试工具 八 JMeter性能测试 九 总结 尾部小
  • Jmeter生成HTML性能测试报告

    目录 1 前言 2 生成报告 2 1 方式一 2 2 方式二 3 查看报告 3 1 Dashboard 仪表板 3 2 Charts 图表 3 3 Customs Graphs 定制图表 1 前言 使用 Jmeter 进行性能压测时 跑完全
  • Fiddler过滤器 Filters 详解

    目录 前言 一 Hosts 过滤 较常用 二 Client Process 过滤 客户端进程过滤 通过配置只过滤 不过滤哪些进程的请求 用的不多 三 Request Headers 根据请求头信息进行过滤 常用 四 Breakpionts
  • 性能测试连载 (11)- jmeter 的线程数与压力模式

    咨询微信 uhz2008 需求 下面有3个场景 思考一下在jmeter里面如何设计 场景1 有一个项目 500用户同时登录 响应时间能达到多少 场景2 考勤打卡 最大吞吐量能达到多少 每秒最大能完成多少笔打卡业务 场景3 银行业务 如果需要
  • 测试老鸟经验,性能测试重点17个疑难解答,一篇打通...

    目录 导读 前言 一 Python编程入门到精通 二 接口自动化项目实战 三 Web自动化项目实战 四 App自动化项目实战 五 一线大厂简历 六 测试开发DevOps体系 七 常用自动化测试工具 八 JMeter性能测试 九 总结 尾部小
  • 性能测试系列(二)

    性能测试之性能分析命令 1 CPU分析 a cpu基本信息 命令 lscpu Cpu架构 64 位 Cpu 核心数 6 NUMA UMA节点数为 2个 显示值加 1 Cpu的核心频率 说明此服务器为虚拟机 此服务器的 cpu使用的是 使用的
  • 苹果端性能测试

    iOS性能测试 1 APP启动时间 工具 Time Profiler 1 17s 初始化应用程序地址空间和动态链接所需的框架所需时间 62 90ms 从UlAppicationMain 或NSApplicationMain 启动到完成did
  • Jmeter:使用代理录制脚本

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

    性能测试的常见指标包括 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
  • 性能测试流程

    参考书籍 软件测试 黑马程序员编著 性能测试与普通的功能测试目标不同 因此其测试流程与普通的测试流程也不相同 虽然性能测试也遵循测试需求分析 测试计划制订 测试用例设计 测试执行 编写测试报告的基本过程 但在实现细节上 性能测试有单独一套流
  • [性能测试]LR常见问题整理

    1 LR 脚本为空的解决方法 1 去掉ie设置中的第三方支持取消掉 2 在系统属性 高级 性能 数据执行保护中 添加loadrunner安装目录中的vugen exe文件 有可能是由于录制的URL地址采用的是localhost的问题 改成分
  • 测试工具73款

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

    01 计数器 计数器就是按照设置可以为每个用户迭代时进行计数 可以用作参数化 jmeter计数器设置 没勾选与每用户独立跟踪计数时 计数器每用户每迭代都会往上增加数字 到最大时可重新开始 勾选与每用户独立跟踪计数器时 每个线程也就是用户会单
  • 使用ADB命令来测试Android手机App的耗电量

    1 使用WiFi连接手机 先使用USB数据线连接手机和电脑 手机和电脑连接同一个WiFi 启动端口服务 adb tcpip 5555 5555为端口号 可以自由指定 打印 restarting in TCP mode port 5555 表

随机推荐

  • 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 验证系统是否能够达到业务所需的性能指标
  • 性能测试fangan

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