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

  • 性能测试调优模型、思想和技术

    最近阅读 软件性能测试 分析与调优实践之路 一书 个人认为性能调优章节为整部书的精华 该章节包括了性能测试调优模型 调优思想和调优技术 下面是摘抄整理自书中内容 调优模型 下图为互联网中常见的用户请求的分层转发和处理的过程 在性能调优时就是
  • loadrunner12使用问题总结

    以下只是针对我在使用中 问题对应的解决方案 可能不适用于所有 1 启动录制 浏览器卡着不动 原因1 浏览器版本过高 不兼容 官方文档的说明是支持ie11 firefox24 chrome30 我降低版本后firefox24正常了 chrom
  • 性能需求指标

    通常我们都从两个层面定义性能场景的需求指标 业务指标和技术指标 性能测试行业常用的性能指标表示法 TPS 每秒事务数 T没有规定 所有相关的人都要知道你的 T 是如何定义的 通常情况下 我们会根据场景的目的来定义 TPS 的粒度 如果是接口
  • 性能监控-influxDB+grafana+jmeter展示测试结果

    InfluxDB 是 Go 语言编写的时间序列数据库 用于处理海量写入与负载查询 涉及大量时间戳数据的任何用例 包括 DevOps 监控 应用程序指标等 我认为 InfluxDB 最大的特点在于可以按照时间序列面对海量数据时候的高性能读写能
  • 【性能测试】第五篇

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

    目前市场上的性能测试工具较多 主流的性能测试工具有 LoadRunner QALoad SilkPerformer 和 Rational Performance Tester 这类都为负载性能测试工具 其原理都相同 首先是录制脚本 通过录制
  • Fiddler过滤器 Filters 详解

    目录 前言 一 Hosts 过滤 较常用 二 Client Process 过滤 客户端进程过滤 通过配置只过滤 不过滤哪些进程的请求 用的不多 三 Request Headers 根据请求头信息进行过滤 常用 四 Breakpionts
  • Locust压力测试使用总结

    上次做接口压力测试前一直研究使用jmeter 本以为可以拿来使用了 但是真正进行并发接口时 发现jmeter在单机下并发1000个时 台式电脑单机资源早就被使用完 整个jmeter卡得死死的 结果那晚使用jmeter并发失败 幸好之前也准备
  • 性能测试系列(二)

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

    引言 今天我来和大家分享一篇关于JMeter接口压测和性能监测的文章 在现代互联网时代 应用程序的性能已经成为了一个非常重要的问题 并且对于许多公司的生存和发展都起着至关重要的作用 而在这其中 JMeter是一个非常实用的工具 可以帮助我们
  • Redis缓存知识-穿透、击穿、雪崩

    目录 一 Redis介绍 二 Redis做缓存服务器 三 缓存穿透 击穿 雪崩 1 缓存穿透 2 缓存击穿 3 缓存雪崩 大家好 我是杨叔 每天进步一点点 关注我的微信公众号 程序员杨叔 获取更多测试开发技术知识 今天分享的内容是 Redi
  • jmeter对百度首页进行压力测试

    第一次测试 准备工作 在测试计划下添加jp gc Stepping Thread Group 阶梯线程组配置如下 该测试一共启动500个线程 每30秒增加10个 全部线程启动后 保持2分钟 然后每1秒停止5个线程 添加HTTP请求 添加查看
  • 工作3个月,我的测试工作感悟

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

    1 Jmeter简介 Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件 相比Loadrunner而言 JMeter小巧轻便且免费 逐渐成为了主流的性能测试工具 是每个测试人员都必须要掌握的工具之一 本文为JM
  • 性能测试流程

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

    1 性能测试需求分析 项目经理 业务 架构专家 产品经理 高级性能测试工程师 开发经理 2 性能测试计划 高级性能测试工程师 项目经理 架构师 产品经理 3 性能测试准备 性能测试工程师 外部支持 网络工程师 系统管理员 测试服务器和被测试
  • loadrunner负载生成器;

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

    首先我们要清楚什么是弱网呢 举一个例子 我们在一个封闭环境中 有时候APP打开的特别慢 或者是一直加载不出来我们想要看到的信息 也就是说这个时候的网速特别的慢 这种状态呢 我们可以理解为弱网 弱网直接造成的影响有丢包 数据无法加载 消息更新
  • 软件测试面试题:软件测试的风险主要体现在哪里?

    软件测试的风险主要体现在哪里 我们没有对软件进行完全测试 实际就是选择了风险 因为缺陷极有可能存在没有进行测试的部分 举个例子 程序员为了方便 在调试程序时会弹出一些提示信息框 而这些提示只在某种条件下会弹出 碰巧程序发布前这些代码中的一些
  • 测试:性能测试

    一 性能测试 性能测试是一种评估软件 系统或服务在特定条件下性能的过程 性能测试有助于确定系统的响应时间 吞吐量 可扩展性 稳定性和资源消耗等关键指标 一 响应时间 响应时间 Response Time 是性能测试中的一个重要指标 用于衡量

随机推荐

  • STM32学习心得五:GPIO实验-基于位操作

    记录一下 xff0c 方便以后翻阅 实验内容 xff1a 跑马灯 蜂鸣器和按键输入 官方资料 xff1a 1 xff09 STM32中文参考手册V10 第8章 通用和复用功能IO GPIO和AFIO 2 xff09 Cortex M3权威指
  • 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 验证系统是否能够达到业务所需的性能指标