性能测试

一.性能测试概述

性能测试概念:

性能测试是指通过特定方式,对被测系统按照一定策略施加压力,获取系响应时间、TPS、资源利用率等性能指标,以期保证生产系统的性能能够满足用户需求的过程。

从不同角度来看性能:

用户角度:

响应时间,稳定性

开发角度:

架构设计,数据库设计,代码设计

系统管理员角度:

性能测试的价值:

提前发现系统高峰运行故障 指导制定突发流量承载方案 确保系统运行平稳

性能测试的目的:

优化性能 最小化成本 最小化风险 交付高质量的系统

性能测试的目标:

  • 评价当前系统性能
  • 寻找瓶颈,优化性能
  • 验证系统稳定性与可靠性

性能测试常用术语

并发数:

某一物理时刻同时向系统提交请求的用户数。 最佳并发用户数:通常反映系统的容量,即系统的处理能力情况。

响应时间:

响应时间指的是从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,这个过程所耗费的时间。(网络时间 + 应用程序处理时间)

吞吐量:

单位时间内系统处理的客户请求的数量,体现系统的性能承载能力

TPS:应用系统每秒钟处理完成的交易数量。

QPS:应用系统每秒钟处理完成的请求数量。

资源利用率:

系统在负载运行期间,数据库服务器、应用服务器、web服务器的CPU、内存、硬盘、外置存储,网络带宽的使用率。

二.性能测试的主要类型

解释:

负载测试:

通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试。 目标:确定系统的性能容量(如系统在保证一定响应时间的情况下能够允许多少并发用户的访问),系统各项指标,如吞吐量、响应时间、CPU负载、内存使用等如何决定系统的性能。

压力测试:

通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,并以此来获得系统能够提供的最大服务级别的测试。 目标:压力测试是为了发现在什么条件下您的应用程序的性能会变得不可接受。

大数据量测试:

  • 主要针对数据库有特殊要求的系统进行的测试。
  • 实时大数据量,测试用户较多或者某些业务产生较大数据量时,系统能否稳定运行。
  • 历史大数据量,测试系统使用一段时间即系统累计一定量的数据时能否正常的运行业务。
  • 前面两种的结合,测试系统已经累计了较大数据量时,一些实时产生较大数据量的模块能否稳定。

单交易负载测试:

单交易在系统一定负载压力下,采用梯度增加并发的方式,获得单交易系统处理最优时的并发用户数、响应时间和系统处理能力。目的是获取单日交易业务处理性能峰值,并且检查和排除该交易自身可能存在的性能问题。

混合交易测试(数据库可能会产生大量的死锁):

根据混合场景设计,采用梯度增加并发的方式,直到出现性能拐点,获得混合交易系统处理最优时的并发用户数、响应时间及系统处理能力。混合交易的目的是获取系统整体在不同负载级别下性能表现,检查和排除交易与交易之间可能存在的并发问题。

三.性能测试的流程

1.测试设计(性能需求调研,方案设计,计划制定)

方案设计:

选取原则:

  • 测试交易要覆盖各个渠道;

  • 选取交易量较大的高频交易;

  • 选取重要程度高的交易;

  • 选取占用资源较高的交易;

  • 选取业务逻辑复杂的交易;

  • 选取交易路径较长的交易;

  • 选取处理时间较长的交易;

  • 选取生产上曾经出现或者容易出现问题的交易;

设计方法:

1.分析业务系统各种正常日和特殊日的业务量运营情况

2.分析实际业务分布、交易类型及交易发生量、交易占比情况,根据业务分布比例及交易比例,确定测试模型所选交易的配比,构建测试模型。

常见测试场景分类:

正常业务日交易场景 特殊日交易场景 高峰交易场景 日终批处理场景

性能指标:

TPS、ART、并发用户数:非功能性能需求 TPS估算:首先获取被选交易生产高峰时段TPS,若获取有困难采用二八原则核算: TPS= n80% m20%*3600 (n:日交易量 m:每日工作时长) 交易成功率:99.99% 各应用服务器和数据库服务器系统资源使用情况:CPU、内存、IO、networke

2.测试准备

测试环境:重要系统以及新系统需要和生产环境一样,其他优化系统要保持1:2配比

测试数据:开发人员准备存量数据,测试人员准备参数化数据(脚本)

测试工具:LoadRunner,JMeter等

3.测试开发

4.测试执行

常见的性能测试问题:

TPS不达标,响应时间慢

交易大量超时或失败报错,交易成功率低于指标

TPS大幅波动不稳定

系统长时间运行不平稳

内存泄露

数据库有大量死锁生成

5.分析报告

Original: https://www.cnblogs.com/xiuercui/p/13953945.html
Author: 程序界第一佳丽
Title: 性能测试

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/577539/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • redis client-output-buffer-limit 设置

    Redis 缓存保护机制: 大小限制,当某一客户端缓冲区超过设定值后直接关闭连接 持续时间限制,某一客户端缓冲区持续一段时间占用过大空间时关闭连接 对于普通客户端来说,限制为0,也…

    Linux 2023年5月28日
    092
  • 【填空题】考研数据结构填空题整理

    数据结构填空题 题源来自《算法与数据结构考研试题精析》、《王道数据结构》在Liang’s Blog所著的文章上补充考点,仅供参考学习 一、概论 数据元素 是数据的基本单…

    Linux 2023年6月13日
    0111
  • VMware Workstation Fixed Unable to connect to the MKS

    场景:早上开虚拟机时突然报这个错 解决办法如下: csharp;gutter:true; 以管理员的身份打开CMD,然后执行如下命令: net start vmx86 net st…

    Linux 2023年6月7日
    076
  • Java基础之接口篇

    Overload和Override的区别?重载Overload:表示同⼀个类中可以有多个名称相同的⽅法,但这些⽅法的参数列表各不相同,参 数个数或类型不同 重写Override:表…

    Linux 2023年6月7日
    092
  • php微信自定义分享链接,标题,描述,缩略图配置步骤

    微信公众号开发,自定义分享链接,标题,描述,缩略图接口 1、文件目录结构 2、后台代码: wxshare.php 注意:使用此代码,只需要把wxshare.php文件下面的appi…

    Linux 2023年6月7日
    092
  • acl/客户端缓存/多级缓存

    redis6安装注意点 我们课程里忽略了,就不去安装了,仅仅只提供安装文档,redis6的安装其实和redis5安装差不多,只是需要注意gcc的版本需要提高,不然编译会出错。参考慕…

    Linux 2023年5月28日
    091
  • Vim 常规教程

    vim 入门到进阶 vim 有四种使用模式 编辑模式, 按 ESC切换 写入模式, 在编辑模式 按 a i 切换 可选模式, 在编辑模式 按 v V 切换 命令模式, 在编辑模式 …

    Linux 2023年6月7日
    0121
  • Linux之虚拟专用网络—VPN

    404. 抱歉,您访问的资源不存在。 可能是URL不正确,或者对应的内容已经被删除,或者处于隐私状态。 [En] It may be that the URL is incorre…

    Linux 2023年5月27日
    0100
  • 方法的深度理解

    权限修饰符 返回值类型 类名(行参列表 )throws 异常的类型{ //方法体 约定俗称:子类中叫重写的方法,父类中叫被重写的方法。 ①子类重写的方法名和行参列表和父类被重写的方…

    Linux 2023年6月14日
    097
  • 操作系统实现:断点切换原理及实现

    本文参考书:操作系统真像还原、操作系统原型xv6分析与实验、其中图主要来自linux内核完全注释 本文针对断点切换迷茫的问题。 详解内核态-用户态的栈变化, 了解用户态-内核态的实…

    Linux 2023年6月7日
    088
  • cpp-函数

    1.基础概念 形参:用在定义、申明处的参数,用于说明参数的类型、名称 实参:用在函数调用,用…

    Linux 2023年6月7日
    0117
  • Google Drive, Onedrive, Dropbox green check marks missing; 修复 google 硬盘,同步符号错误

    最近使用google 硬盘的时候,Windows平台总是出现安装后文件夹不能显示同步符号,而mac平台就无上述错误; 我查了一下资料,发现是因为系统安装的同步软件有点多,Windo…

    Linux 2023年6月13日
    0100
  • 4.6 Linux解压.gz格式的文件(gunzip命令)

    gunzip 是一个使用广泛的解压缩命令,它用于解压被 gzip 压缩过的文件(扩展名为 .gz)。 对于解压被 gzip 压缩过的文件,还可以使用 gzip 自己,即 gzip …

    Linux 2023年6月7日
    066
  • 详解IP地址、子网掩码、网络号、主机号、网络地址、主机地址

    详解IP地址、子网掩码、网络号、主机号、网络地址、主机地址 概念 IP地址:一般是指逻辑ip; 子网掩码:将IP划分为网络号和主机号的IP; 网络号/主机号:子网掩码转成二进制后,…

    Linux 2023年6月6日
    0113
  • MySQL — 数据查询语言

    DQL 全称 Data Query Language。数据查询语言,用来查询数据库中表的记录。 语法: select 查询列表(字段、常量、函数、表达式) from 表名; 字段别…

    Linux 2023年6月8日
    090
  • [ Python ] 音视频剪辑

    https://www.cnblogs.com/yeungchie/ 视频 提取视频 from moviepy.editor import * 从 MP4 文件提取 video =…

    Linux 2023年6月7日
    093
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球