性能测试怎么做?性能测试重点和各项性能测试流程(超级详细)

2023-10-27

前言

性能测试基础

1)性能测试一般分为:负载测试、压力测试、基准测试、稳定性测试、扩展性测试。

2)常见的性能测试指标:响应时间;TPS/QPS;并发用户;PV/UV;点击率;吞吐量;资源开销

3)性能测试的场景:
业务场景:系统的业务处理流程;
测试场景:对业务场景的真实模拟;
单场景:只涉及单个业务流程的测试场景;
混合场景:每个业务流程在混合的业务流程中占的比重会不同,尽可能符合实际的业务需要。

性能测试目标

1)了解系统的各项性能指标。
比如,通过压测可以了解系统能承受多大的并发访问量、系统的平均响应时间是多少、系统的TPS是多少等。

2)发现系统中存在的性能问题。
比如,系统中是否存在负载均衡不均、内存泄漏、连接泄漏、线程安全、死锁、网络架构或者应用架构扩展性问题,也能发现系统的性能瓶颈在何处。

① 负载均衡不均匀
一般指的是在并发的情况下,每台服务器接收的并发压力不均匀,从而导致部分服务器因为压力过大而出现性能急剧下降,以及部分服务器因为并发过小而出现资源浪费的情况。

② 内存泄漏
是指应用程序代码在每次执行完后,不会主动释放内存资源而导致内存使用一直增加,最终会使服务器物理内存全部耗光,程序运行逐渐变慢,最终因为无法申请到内存而退出运行。内存泄漏多数情况下是非常缓慢的增加,不容易被发现,一般需要通过高并发性能压测才能暴露。

③ 连接泄漏
种类非常广泛,可以是数据库连接泄漏、HTTP连接泄漏或者其他的TCP/UDP连接泄漏等。除了系统实际情况需要建立长连接外,一般短连接都应该是用完就需要关闭和释放。

④ 线程安全问题
在高并发访问的多线程处理中经常会出现,表现为多个线程先后更改数据,造成所得到的数据全部是脏数据。

⑤ 死锁
出现在多并发情况下,为保证有限的资源正常使用,从而上锁,最后因为一线程(进程)无法及时释放资源,导致死锁。常见的有系统死锁、数据库死锁等。

⑥ 扩展性问题
一般是指性能指标无法满足预期的情况下,通过横向或者纵向扩展硬件资源后,系统性能指标无法按照一定的线性规律进行快速递增。

3)解决性能压测中存在的问题和性能瓶颈。

性能测试基本流程

 

1)性能需求分析

① 熟悉业务流程,明确此次性能测试的目标,找到业务需求的性能点。

② 熟悉系统的应用架构、技术架构、数据架构、部署架构等,找到与其他系统的交互流程,明确系统部署的硬件配置信息、软件配置信息。

③ 把对性能测试有重要影响的关键点列举出来。

比如用户发起请求的顺序、请求之间的相互调用关系;业务的数据流走向;被压测系统可能存在的重点资源消耗;应用的部署架构等。

④ 明确系统上线后可能会达到的最大并发用户数、用户期望的平均响应时间以及峰值时的业务吞吐量,并将这些信息转化为性能需求指标。

2)制定性能测试计划
测试计划一般本次测试的目的,各个阶段的时间点+对应负责人,以及本次性能测试风险的分析和控制。

3)编写性能测试方案
① 设计测试场景。
② 定义具体事务操作。
③ 针对每个场景,明确监控对象和可能的性能瓶颈点:监控对象:比如TPS、平均响应时间、击率、并发连接数、CPU、内存、IO等。可能的性能瓶颈点:比如数据库查询、Web务器服务转发、应用服务器等。
④ 定义测试策略:明确性能测试的类型、执行顺序、加压方式(压测需要)。
⑤ 选取性能测试工具。
⑥ 明确硬件配置和软件配置:硬件配置:服务器的CPU配置、内存配置、硬盘存储配置、集群环境下还要包括集群节点的数量配置等。软件配置:操作系统、应用版本、参数配置和网络配置。

4)编写性能测试案例,对压测场景细化。
① 描述预置条件:满足啥条件性能测试案例才可以执行。
②详细描述案例执行的步骤,包括:测试脚本的录制和编写脚本的调试;脚本的执行过程(比如如何加压、每个加压的过程持续多久等);要观察和记录的性能指标;需要明确性能曲线的走势;需要监控哪些性能指标等。
③ 描述性能测试预期需要达到的结果,比如:TPS需要达到多少;平比响应时间需要控制到多少以内;服务器资源的消耗需要控制在多少以内等。

ps:在实际工作中,你分析完性能需求之后,可以把测试计划、测试方案和测试案例合成一个文档,这块并没有严格的定义,可以按你们公司的流程来做。

5)搭建性能测试环境
6)构造性能测试数据
7)编写性能测试脚本
8)执行性能测试场景(案例)
9)分析性能测试结果,编写性能测试报告
10)系统性能瓶颈分析与性能调优

① 性能分析调优模型

 ② 性能分析调优思想:分层分析、科学论证、问题追溯与归纳总结。
③ 性能调优技术,一般包括:缓存调优;同步转异步推送;拆分;任务分解与并行计算;索引与分库分表

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

性能测试怎么做?性能测试重点和各项性能测试流程(超级详细) 的相关文章

  • 一种复杂业务场景的解决方案(代码结构)

    背景 我个人负责交易线的一些服务优化工作 如购物车 预购单等 这些服务是前台服务 需要基于很多中台服务能力来实现业务功能 中台服务如商品中心 协议中心 用户中心 营销活动等 前台服务通过RPC调用中台服务获取数据 在2020年度的优化工作汇
  • 如何做好nodejs服务在服务器上的安全防护?

    Web服务器安全问题仍然是IT部门最关心的问题之一 因为频发的网络攻击已被证明 由于存在托管敏感数据 Web服务器是一个组织中最容易被黑客针对攻击的地方 因此 本篇文章结合nodejs服务对如何提高Web服务器安全性给出了下面几条提示 一

随机推荐

  • 2023蓝桥杯C++A组题解(第十四届)

    今年广东省三中游 按New Oj估分 前5题估分17 第1题 3 4 5题暴力 第2题 B dfs写错了 第7题 G 并查集 多了个以前没见过的要求 找不到思路 面向爆零选手 水平有限 将就着看 有空再补充后5题 目录 吐槽 A 2067
  • Vue全家桶(四)之ES6模块化与webpack打包

    Vue全家桶 Vue全家桶 地址 Vue全家桶 一 之基础指令 https blog csdn net m0 55990909 article details 123917809 Vue全家桶 一 之常用特性 https blog csdn
  • Air32

    Air32 合宙Air001单片机内部FLASH读写示例 代码已经通过测试 开发环境KEIL MDK 5 36 测试代码 void FLASH RdWrTest void uint32 t Address uint32 t PageRead
  • vue + ant design vue 搭配 less 动态自定义主题颜色

    今天搞了一下午 终于搞成功了 分享给大家看看 思路解析 less 提供一个 modifyVars 可以修改浏览器中 less 文件里的变量 所以我们需要在浏览器端引入 less js 需要引入一个 less 文件 其中包含要修改的变量 但是
  • yum install net-tools安装报错could not resolve host: mirrorlist.centos.org

    Could not retrieve mirrorlist http mirrorlist centos org release 7 arch x86 64 repo os infra stock error was 14 curl 6 C
  • 移远EC600S-CN (3) - HTTP(S)应用GET请求POST请求,HTTP接入OneNET物联网云平台

    移远EC600S CN 使用AT指令HTTP连接GET请求POST请求 并接入OneNET物联网云平台 实现HTTP对物联网设备的接入 同样也适用于 EC200S EC200S不支持QuecPython 体积比EC600S略大 但便宜很多
  • Ubuntu 命令行安装android studio

    安装 sudo apt add repository ppa paolorotolo android studio sudo apt get update sudo apt get install android studio 创建桌面快捷
  • Unity 最新UnityWebRequest下载,同时显示下载进度,和 显示网速,今天贴出来和大家分享

    Unity 最新UnityWebRequest下载网络资源 支持断点续传 多文件同时下载 同时显示下载进度 和 显示网速 今天贴出来和大家分享 显示网速图片 附上案例链接 可下载 https download csdn net downlo
  • 【代码重构 & JDT】遍历AST,获取每个节点的所有直接子节点

    public class DataNode public ASTNode node 所代表的的AST节点 public int label 编号 public List
  • ORB特征提取与匹配

    ORB特征是目前最优秀的特征提取与匹配算法之一 下面具体讲解一下 特征点的检测 图像的特征点可以简单的理解为图像中比较显著显著的点 如轮廓点 较暗区域中的亮点 较亮区域中的暗点等 ORB采用FAST features from accele
  • 【编码】使用JavaScript做中文编码转换

    背景 用git bash跑curl命令的时候 会碰到中文无法输入or无法正常工作的情况 这里介绍先把中文转码 就可以正常使用了 这里介绍JavaScript的方法 1 在url地址上的GET参数是中文时 使用 console log enc
  • Android 13 - Media框架(9)- NuPlayer::Decoder

    这一节我们将了解 NuPlayer Decoder 学习如何将 MediaCodec wrap 成一个强大的 Decoder 这一节会提前讲到 MediaCodec 相关的内容 如果看不大懂可以先跳过此篇 原先觉得 Decoder 部分简单
  • Selenium JSON通信协议

    JSON wire protocol JSONWP 是WebDriver开发者编写的一种通信机制 这个通信协议是一个预定义的特殊设置 通过RESTful API暴露标准端口 WebDriver和JSONWP目的是通过Firefox driv
  • 7-3 成绩等级

    7 3 成绩等级 给出一个成绩 要求输出成绩等级 A B C D E 90分以上为 A 80到89分为 B 70到79分为 C 60到69分为 D 60分以下为 E 输入格式 在一行输入一个整数n n lt 100 输出格式 在一行中输出成
  • 视频汇聚/视频云存储/视频监控管理平台EasyCVR添加萤石云设备详细操作来啦!

    安防视频监控 视频集中存储 云存储 磁盘阵列EasyCVR平台可拓展性强 视频能力灵活 部署轻快 可支持的主流标准协议有国标GB28181 RTSP Onvif RTMP等 以及支持厂家私有协议与SDK接入 包括海康Ehome 海大宇等设备
  • QT With OpenGL(延时着色法)(Deferred Shading)

    文章目录 1 创建G Buffer帧缓存 2 修改各类型物体的着色器 3 测试G Buffer 4 使用G Buffer生成场景 5 添加高光项 1 如果为光源物体 则不进行光照结果计算 2 对高光项进行高斯模糊 3 泛光合成 更多 光体积
  • 蓝桥杯505--数字三角形

    题目描述 上图给出了一个数字三角形 从三角形的顶部到底部有很多条不同的路径 对于每条路径 把路径上面的数加起来可以得到一个和 你的任务就是找到最大的和 路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右 边的那个数 此外 向左
  • 【数据库课程设计】企业库存管理系统

    作者 何翔 学院 计算机学院 学号 04191315 班级 软件1903 完整资料 https download csdn net download HXBest 72361220
  • 开发板连续显示图片

    本文分享自中移OneOS微信公众号 万耦中的二次元世界 作者 小M哥 BAD APPLE原本是东方游戏里的一首歌曲 后来被加了一个MAD 由于MAD非常惊艳华丽 使得BAD APPLE被大家喜爱 在程序员圈子里 有一个传言 有屏幕的地方 就
  • 性能测试怎么做?性能测试重点和各项性能测试流程(超级详细)

    前言 性能测试基础 1 性能测试一般分为 负载测试 压力测试 基准测试 稳定性测试 扩展性测试 2 常见的性能测试指标 响应时间 TPS QPS 并发用户 PV UV 点击率 吞吐量 资源开销 3 性能测试的场景 业务场景 系统的业务处理流