性能测试

一.性能测试概述

性能测试概念:

性能测试是指通过特定方式,对被测系统按照一定策略施加压力,获取系响应时间、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)

大家都在看

  • 离线版centos8安装docker笔记

    嗨嗨哈哈,已经很久没有坐下来胡编乱造一点笔记了,平时云服务器搞惯了,一个命令就安装好了docker了的,但这次生不逢时的新机房就没那么幸运了,有多不逢时超乎想象,不仅仅服务器没有外…

    Linux 2023年5月27日
    0141
  • conda 和 pip 的具体区别

    pip install 安装包时不会自动安装所需的其他依赖包,只是在缺少其他依赖包时作错误提示,这时需要手动安装其他依赖包 pip 不会将python看成包,不能对环境中的pyth…

    Linux 2023年6月7日
    097
  • linux挂载文件系统

    当使用光驱等硬件设备时,必须将其挂载到系统中,只有这样Linux才能识别。 1、给虚拟机中centos7系统添加一块新的硬盘,添加以后必须重启centos7才能生效 2、在root…

    Linux 2023年5月27日
    0108
  • Flask的环境配置

    from flask import Flask​ 通过专门的配置文件,读取配置项,适用于配置项较多 settings.py class Config(object):    DEB…

    Linux 2023年6月8日
    0106
  • Linux安装软件时90%的人会遇到这个报错,如何解决?

    提示 Could not get lock /var/lib/dpkg/lock 报错? 有些小伙伴在使用 apt 包管理器更新或安装软件时,可能会遇到过诸如以下的错误提示: E:…

    Linux 2023年6月14日
    0133
  • shell 变量的默认值

    在 shell 脚本中,如果要使用某个变量又想给它设置默认值,可以用 XX=${YY-ZZ} 的方式,其中 ZZ 会是 YY 没有设置时的默认值 另一种用法是 XX=${YY:-Z…

    Linux 2023年5月28日
    0108
  • 【转】京东评价系统海量数据存储设计

    概述 京东的商品评论目前已达到数十亿条,每天提供的服务调用也有数十亿次,而这些数据每年还在成倍增长,而数据存储是其中最重要的部分之一,接下来就介绍下京东评论系统的数据存储是如何设计…

    Linux 2023年6月16日
    0137
  • Cookie

    题目如下 打开靶机 根据提示,需要admin登录才能得到flag,题目介绍为Cookie欺骗,认证,伪造 打开burpsuite进行抓包,HTTP数据包是可以修改cookie值的 …

    Linux 2023年6月7日
    087
  • VMware Workstation 16.2 Pro for Linux SLIC 2.6 & Unlocker

    macOS Unlocker,支持 macOS Monterey 请访问原文链接:VMware Workstation 16 Pro Unlocker & OEM BIOS…

    Linux 2023年5月27日
    098
  • Redisson和spring-integration-redis 分布式锁

    Redisson 引入依赖 配置文件application.properties 配置类 配置文件application.properties(这种方式完全兼容SpringBoot…

    Linux 2023年5月28日
    093
  • 简单的kubernetes搭建

    一、基本环境: Centos7.X Docker Version: 1.13.1 二、kubernetes各组件介绍: etcd保存了整个集群的状态 kube-proxy负责为Se…

    Linux 2023年6月13日
    083
  • Typora+gitee+picgo搭建本地博客环境

    前言 现在现成的博客平台数不胜数,如果选择服务器+自建博客也有很多方案,可是本人对相片、博客等信息数据总是有本地和互联网各存储一遍才放心的习惯,所以作者本人选择了csdn、博客园、…

    Linux 2023年6月7日
    0128
  • .Net MVC实现全局异常捕捉返回通用异常页面的一种方式

    阅文时长 | 0.54分钟字数统计 | 876字符主要内容 | 1、引言&背景 2、部分通用设计代码 3、声明与参考资料『.Net MVC实现全局异常捕捉返回通用异常页面的…

    Linux 2023年6月13日
    0111
  • [ Linux ] Gnome3 禁用桌面屏保

    https://www.cnblogs.com/yeungchie/ gsettings gsettings set org.gnome.desktop.session idle-…

    Linux 2023年6月7日
    0118
  • windows环境安装VNC及远程连接linux(centos7)

    基础环境: 客户端:windows 10 服务器:centos7 软件:windows客户端安装 VNC-Viewer-6.21.1109-Windows.exe 下载地址:htt…

    Linux 2023年5月27日
    096
  • Spring Boot:使用Redis存储技术

    综合概述 Redis是一个开源免费的高性能key-value数据库,读取速度达110000次/s,写入速度达81000次/s。Redis支持丰富的数据类型,如Lists, Hash…

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