[性能测试01] 性能测试参数

发布时间:2024年01月20日

对于性能测试工程师的要求

  1. 熟练掌握至少一种性能测试工具,能够用之进行脚本开发、负载测试等。
  2. 要求性能测试工程师能够分析、获取、提炼性能需求。
  3. 要求性能测试工程师能够根据需求进行性能测试场景的设计。要求能够实现、执行性能测试场景,并且收集性能相关的数据。
  4. 要求能够根据需要去对相关的性能环节进行监控,获取相应的性能数据。
  5. 要求能够结合监控数据,性能测试数据进行分析、定位性能瓶颈、提出调优建议
  6. 了解性能测试的常见术语
  7. 性能调优 SQL查询调优,接口调优

常见性能指标

并发

并不是只要发出请求,服务器就一定有压力
但是并发数和服务器压力成正比

服务器主要是请求造成压力
也就是大量用户同时性请求

事务

事务的通过数越高,性能越好

每秒事务通过数()简称:TPS/QPS

throughput:单位是字节。比如说带宽流量、io、磁盘IO等。

普遍情况而言,同一个业务情况下,throughput和tps一定是成正比变化的。

点击率

用户每秒向服务器提交的请求数

请求数不是鼠标的点击数,一个鼠标点击事件可能会有多个请求

吞吐量

单位时间内服务器处理的请求数量
体现软件系统的性能承受能力

吞吐量受服务器和网络性能的影响

单位:byte/s

资源利用率

通常来说主要是系统层面的资源利用率。

常见的有:CPU、内存、磁盘IO、网络带宽、连接数等。

对于资源利用率来说,作为性能指标的意义,其实是远远小于分析问题所在的意义


资源利用率主要是为了定位问题,用户只会关心反馈情况
?

虚拟用户

虚拟用户需要CPU、内存、磁盘.网络带宽、连接数等资源。

常用英文对照

响应时间(Response Time):
指从发送请求到接收到完整响应所经过的时间,整个时间过程

平均响应时间(Average Response Time):
对于所有响应时间的一个平均值

最大响应时间(Maximum Response Time):
响应时间中的最大值

标准差(Standard Deviation):
响应时间的离散程度,常常用于衡量响应时间之间的稳定性

百分位数(Percentiles):
用于衡量响应的全部完成情况,百分比


性能测试工程师面临的挑战有哪些?

·知识面的广度。

接口实例,在我进行接口调试的时候,我发现对于Java传输的参数,前端不能正确解析,但是接口返回的数据是正确的,由于JS是弱类型语言,需要进行类型声明

注意测试资源不足。
测试环境和生产环境的差异
注意人力
注意时间

性能测试本质

在软件系统中,性能相关的指标、名称、术语很多
论及性能的本质只有两点:

how fast 多快
how much 多少

时间和空间变换的问题?

也就是需要注意的是,评估一个系统的性能好坏,必须从两个方面入手,不能说只说其一不说其二,且系统的性能好坏,没有绝对的标准,必须以满足需求为主

性能测试常见要点

技术事务

是指在性能测试过程中所涉及到的技术和操作事项,以及被测项目的技术选型


自动化

通过自动化工具和脚本,实现性能测试任务的自动化执行,提高效率和一致性


混沌工程

通过有意制造系统的故障和异常条件,来测试系统的稳定性和可靠性


数据监测

对被测系统进行性能数据收集,对数据集进行分析和监测,密切关注相关性能指标

性能测试有哪些用户

负载用户: 及向服务器发起请求压力的用户
系统最大用户: 使用系统的最大人数.
用户不一定是真正意义上的人,应该是服务的消费者,使用者.
用户的预估和容量应该是根据系统的业务场景去评定的.

在线用户: 长时间使用系统的人数
有时候是 PV 这样的指标PV(Page View)是指网站或应用程序在一定时间内被用户访问的页面数量。它是衡量网站或应用程序流量和受欢迎程度的重要指标之一。
PV通常用于衡量网站的页面浏览量或应用程序的屏幕浏览量。

每当用户加载或刷新页面,一个PV就会被计算。对于一个网站或应用程序而言,PV数越高,表示被用户访问的频率越高,也意味着更多的用户与内容进行交互。
一般是以监控数据或同行数据为准.

并发用户数:并发分为两种
严格的并发:是指代同时向服务器发起的请求
很多时候,需求要求的并发用户数并不一定准确,并发用户数是通过一个测试来得到的结果
并发用户数= TPS x 平均响应时间
广义上的并发:就是指同时在线

性能测试的分类

对性能测试来说,进行分类其实是为了清楚的分辨出性能测试的目的

负载测试测试?系统在不同的负载级别下的性能表现,从而确定系统的最大处理能力。最佳的性能表现点和最大的负载用户数

容量测试?测试系统在那特定容量下的性能表现.
容量在系统中和容量有关的,一般有数据库带宽,还有连接数等.
一般是以数据库的容量为准.

基准测试?用于获取系统中基本业务的响应时间.
一般实现为模拟用户进行多次操作取平均值.
用于辅助于其他性能测试的参考指标.

配置测试用于获取系统运行的最低配置,以及良好运行配置.

并发测试为了测试系统中是否存在资源竞争、事务冲突和锁的升级等现象.
一般主要分为同一业务的并发不同业务中的相互并发.

性能测试与其他技术

微服务 : 水平扩容 加配置

k8s : k8s的可伸缩性动态容量规划

Kubernetes(通常简称为K8s)是一个开源的容器编排和管理平台,用于自动化部署、扩展和管理容器化应用程序。它提供了一种可靠且可扩展的方式,用于管理容器化应用程序的部署、运行和维护。

  1. 容器化应用程序:Kubernetes基于容器技术,如Docker,允许开发人员将应用程序及其依赖项打包为容器镜像。容器化应用程序具有轻量、可移植和隔离的特性。
  2. 集群管理:Kubernetes可以管理由多个主机(节点)组成的集群。它负责调度容器应用程序的运行,并确保它们在集群中的正确位置和状态。
  3. 自动化部署:Kubernetes提供了丰富的部署配置选项,如Deployment、ReplicaSet和Pod等,使开发人员能够定义应用程序的期望状态,并自动部署和更新应用程序。
  4. 服务发现和负载均衡:Kubernetes通过Service资源提供了内部负载均衡和服务发现机制,使应用程序能够稳定地与其他组件进行通信。
  5. 水平扩展:Kubernetes可以根据负载情况自动扩展应用程序的副本数,以满足流量需求,并在负载减少时自动缩减副本数。
  6. 自我修复:Kubernetes监控容器和节点的健康状态,并在出现故障或不健康的情况下自动恢复容器或替换故障节点。
  7. 存储和卷管理:Kubernetes提供了卷(Volume)和持久卷(Persistent Volume)的抽象,使应用程序能够使用持久化存储,并保留数据状态。
  8. 配置和密钥管理:Kubernetes提供了ConfigMap和Secret等资源,用于管理应用程序的配置信息和敏感数据(如API密钥)。

服务器架构相关

一般来说,经典的服务器架构是三层架构模型
client : 客户端是主要和用户进行交互的

service: 服务器.应用程序的主要逻辑是在服务器中发布的服务器,既包括服务器软件本身,也包括了服务器中发布的应用程序.
主要涉及到应用逻辑,及隔离数据库与客户端

Database:数据库数据的存储和读取,最重要的部分

客户端

按照客户端的不同,我们常见的应用可以分为三类
首先是 b/s 应用,也叫真正的web应用 browser/service

cs 应用 cilent service cilent 一般专职专属客户端需要下载安装

App 移动客户端 App 里面一般会嵌套有 b/s,c/s等等

服务器

web服务器面向用户的

监听、接收处理用户请求对于用户请求又分为两种.
静态资源:直接返回静态资源.
动态资源: 经过服务器端提供的接口处理后,返回资源.

对于返回结果,不论是动态还是静态的,都是对用户而言,都是静态.

常见的web服务器产品有:

·apache: lamp架构
·iis:
·tomcat:
·lighttpd:
·nginx:最早是一个反向代理服务器。

应用服务器

是面向 web 服务器的和数据库进行通讯
作用是封装业务逻辑代码,并提供接口供调用者使用
与数据库进行交互

典型的应用服务器:
?

·weblogic
·websphere
·IIS
·JBOSS/tomcat
·金蝶/用友

数据库

数据库全名叫数据库管理系统(DBMS)

·层次模型数据库
·网状模型数据库
·关系模型数据库(RDBMS)

ACID特性

常见的RDBMS数据库有:
·oracle
·mysql
·postgreSQL
·MS SQL
·DB2
·MongoDB
·noSQL:not only SQL。非关系型数据库。
SQL是指结构化查询语言,是RDBMS的官方操作语言。

挡板处理

  • 挡板处理是在软件开发中常见的一种容错机制.
  • 在系统出现故障或异常情况时,提供备用的响应和处理方式
  • 他的目的就是为了保护系统的稳定和功能的可持续使用
  • 防止故障产生连锁反应以及影响到其他用户的体验.
  1. 故障隔离:当系统的某个服务会组件功能出现问题的时候,不可用或响应时间过长,挡板处理可以将请求转发到备用可靠的系统服务,以避免整个系统的性能下降
  2. 降级处理:在系统负载过高或资源紧张的情况下,挡板处理可以降低某些功能和服务的优先级。以保障核心功能的正常运行
  3. 缓存和预加载:挡板处理可以利用缓存机制在请求无法处理时候,返回返缓存的结果,比如说浏览器一般都是直接访问的缓存的内容
    再还有一种是请求不达到数据库,直接访问访访存,减少数据库压力,r redis就是这样
  4. 错误处理和异常回退:当系统发生错误抛出异常时,挡板处理可以捕获一种默认的错误处理逻辑,以避免异常的传播和影影响服务器功能
  5. 限流和熔断:挡板处理可以通过限制请求处理和丢弃过载的请求,保护系统免受过度负载的影响,在达到阈值的时候,可以触发熔断,及时暂停某个服务的请求,以免系统负载压力过大

它通过故障隔离、降级处理、缓存、错误处理和限流等技术手段,保护系统的稳定性和可用性。挡板处理是构建可靠系统的基本保障


数据量级数学评估

根据数据量级 建立一元二次方程
50w, 100w, 200w
数据量 = X (数据量)* Y(环境)

评估
正态分布 与 正态校验


这些检验方法会计算统计指标,并与预定义的置信水平进行比较,以确定数据是否显著偏离正态分布。

对于收集到的数据进行数学方法处理,在面对大量数据的时候,可以构造正态分布以及进行静态校验,检测数据是否符合业务逻辑预期?

集群

集群主要是负载均衡,提升服务器的整体处理能力
集群的负载能力是增加集群边际递减的

基本策略有三种

  • 轮询
  • 动态
  • 基于 IP 分配(nginx)
    是基于网段进行分配的

考虑负载均衡准确落在集群上

主从,主主数据库

主从数据库(Master-Slave Replication):
主从数据库是一种数据库复制架构,其中一个数据库服务器(主服务器)负责处理写操作(插入、更新、删除),而其他一个或多个数据库服务器(从服务器)复制主服务器的数据并用于读操作。主从复制的过程中,主服务器将写操作的日志(二进制日志)传输给从服务器,从服务器根据日志内容对自己的数据进行更新,以保持与主服务器的数据一致性。

主从数据库的优点包括:

  • 负载均衡:读操作可以分散到多个从服务器上,减轻主服务器的负载。
  • 备份和容灾:从服务器可以作为主服务器的备份,当主服务器发生故障时,可以快速切换到从服务器继续提供服务。
  • 数据分析:从服务器可以用于数据分析和报表生成,而不会影响主服务器的性能。

主主数据库(Master-Master Replication):
主主数据库是一种数据库复制架构,其中两个或多个数据库服务器都可以执行读写操作。每个服务器既可以作为主服务器接收写操作,又可以作为从服务器复制其他主服务器的数据。主主数据库复制需要确保冲突数据的解决,以避免数据不一致。

主主数据库的优点包括:

  • 高可用性:任何一个主服务器出现故障时,其他主服务器可以继续提供服务。
  • 负载均衡:写操作可以分散到多个主服务器上,提高系统的整体性能。
  • 数据冗余:每个主服务器都具有完整的数据副本,增加了数据的冗余和容灾能力。

在主主数据库中,由于多个主服务器之间进行写操作,可能会导致数据冲突和一致性问题。解决数据冲突需要采用一些策略和机制,例如应用程序层面的锁机制、分区键、时间戳等。

云服务

·SaaS:软件即服务(腾讯文档,百度网盘)
·IaaS:基础设施即服务(阿里云)
·Paas:平台即服务(云桌面云电脑)


?哈,谢谢各位同志的阅读,然后呢如果觉得本文对您有所帮助的话,还给个免费的赞捏
Thanks?(・ω・)ノ

文章来源:https://blog.csdn.net/tq411810317/article/details/135718527
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。