性能测试技术之基础篇(精华)

目录

一、什么是性能?

二、什么是性能测试?

三、性能测试结果需要记录哪些参数?

四、如何做性能测试(性能测试流程)?

1、指标建模 

2、诊断调优

五、常见性能测试工具


一、什么是性能?

时间复杂度和空间复杂度:性能不仅仅包括处理的效率,还要包括资源的占用;

相同的效率下,资源(CPU、内存、IO等)占用越小---则性能越高;

相同的资源占用(CPU、内存、IO等)下,处理效率越高---则性能越高;

计算机资源:CPU、GPU、内存、磁盘、网路等;而性能的问题,也一般体现在资源的不足上面(主要是CPU、内存和IO);

当然,也有些性能的问题是程序上,如没做负载均衡、单核工作等,这会出现设备整体资源大部分空闲,但处理性能却到瓶颈的问题;

二、什么是性能测试?

 简单来说:是通过模拟增加负载来测试系统、网络设备在负载情况下,其延迟、新建、并发、吞吐等指标是否满足性能要求的测试,比如:压力测试、负载测试、容量测试等

负载测试

是一种通过不断增加负载来测试出系统、网络设备性能瓶颈或表现的方法。阶梯式增加负载或达到一定负载时,找出系统cpu、内存、网络不足时性能的拐点。

举例1:测出web系统登录接口的最大并发性能;

压力测试

是一种极限负载时,测试系统、网络设备在极限状态下且长时间运行是否稳定的方法。主要目的是极端异常高压下,测试系统的容错、可恢复能力。压测是长时间的高负载测试。

举例1:测出web系统商品展示页面在大压力(超出系统支持的最大负载)下是否正常展示,系统是否稳定;

容量测试

是一种测试出系统最大最优容量的方法。如:用户认证最大数、模块配置最大条数、存储最大容量等。在指标测试、性能场景测试、稳定性测试中都会覆盖到容量。

举例1:测出web系统支持注册的最大用户数,购物车支持最大商品数;

在工作中不同公司通常有自己定义的性能测试项,本质都是基于上面三个基本概念(负载、压力、容量)延伸出来的。这里举个工作中普遍设计的性能测试项例子;

测试活动中都会接触指标测试、可靠性测试、稳定性测试,下面重点介绍它们:

区别:

1、指标测试:更偏向于测试建模,验证系统不同负载下的各项指标数据,其测试模型、环境、方法、仪器、报告都比较标准化,一般有自动化做基准测试。

2、可靠性测试:更偏向于测试模拟用户真实业务、行为操作等,以及大压力下可能出现的故障容错与恢复性。一般都是临时搭建测试环境,需要设计可靠性用例

3、稳定性测试:也是可靠性测试的一种,但要求更严格,部署,配置,操作,压力,监控等都必须严格遵守与记录,保持正常运行2周以上(出现异常则重新计算),直到项目发布(部分项目发布后还需继续跑几周)

 性能测试目的:

  • 评估系统能力,对比数据,帮助规划人员作出下一步决策
  • 性能调优,持续提升产品软件性能
  • 满足用户大型业务需求,方案需求
  • 提供产品应标性能参数表,供客户选型或友商PK
  • 评估系统的资源,及时发现资源不足的风险
  • 评估单个模块的开启可能对整体性能的影响

三、性能测试结果需要记录哪些参数?

上面讲过性能测试有很多项,但首要测试的通常是指标测试,即测试系统最大处理能力,测试结果通常有以下几项。

常见性能参数:

1、新建数:通常都是指每秒4层tcp的新建连接的个数。如:Nat模块支持最大21w新建数每秒。

2、并发连接数:通常测试网络设备,保持4层连接(tcp/udp/icmp)的总数,也叫会话数。

3、吞吐量:每秒通过设备的数据量(Bps/bps),可细分上行吞吐、下行吞吐。

4、用户数:通常测试网络设备,指设备上活跃上线的用户总数。

5、包转发率:每秒通过设备的数据报文(pps),可细分上行pps、下行pps。

6、页面的性能体验指标,分别包括:空载情况,正常负载情况和满载情况。

7、资源占用:各种负载下的CPU占用、内存占用、IO占用情况;

不同的系统测试项通常不一样,如底层网络设备,通常会测试4层的新建和并发连接性能;服务器系统通常会测试7层的最大并发(TPS)和响应延迟,并记录最大性能负载下的资源占用情况(CPU、内存、IO)。

四、如何做性能测试(性能测试流程)?

性能测试流程通常包括五个流程:

1、指标建模 

上面最大难点在于指标建模,测试模型要考虑:什么样的测试环境配置(几核几G),配置开关和比率,流量业务和比率等,最后在定好的测试模型开始设计性能场景用例;

以某个新功能模块为例,那性能场景用例通常包括那些呢?

  • 模块规格基线:测试最大容量规格的性能指标(如:满配1万在线用户下的资源占用);
  • 模块管理面性能:页面响应指标,配置下发指标(如:CPU负载80%下访问购物车页面的响应耗时);
  • 模块数据面性能:用户场景下模块本身的性能指标(如:商品展示页面支持的最大并发访问;模块启用后资源占用情况等)

2、诊断调优

测试出性能数据后,怎么判定性能是否达标,通常性能要求在需求阶段就有定义好了,类似以下定义:

支持1万并发用户访问,95%请求响应延迟低于1s,且最大负载下模块CPU占用不超过50%,内存占用不超过1G。

如果性能不达标,就需要给出资源占用数据,协助研发一同分析:

 

五、常见性能测试工具

 网络网关类设备性能通常会用思博伦(spt)仪器测试4层网络吞吐性能;

互联网公司大部分是web系统,测试也主要是web 接口性能,通常用Jmeter、loadrunner,或者用python测试,常用python测试接口并发性能的工具是locust。

工具类使用教程网上搜基本都有,这里不做描述。

如果你认真读到这里,那么我相信你对于性能测试已经有了基本了解,出发吧,少年,性能测试是一项系统性功能,不容易被AI替代,目前相关岗位待遇也不错。

觉得有收获给个赞或收藏!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/43379.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C语言】字符函数和字符串函数

目录 1.求字符串长度strlen 2.长度不受限制的字符串函数 字符串拷贝strcpy 字符串追加strcat 字符串比较strcmp 3.长度受限制的字符串函数介绍strncpy strncat ​编辑strncmp 4.字符串查找strstr 5.字符串分割strtok 6.错误信息报告 strerror perror 7.字符分类函…

【算法挨揍日记】day03——双指针算法_有效三角形的个数、和为s的两个数字

611. 有效三角形的个数 611. 有效三角形的个数https://leetcode.cn/problems/valid-triangle-number/ 题目描述: 给定一个包含非负整数的数组 nums ,返回其中可以组成三角形三条边的三元组个数。 解题思路: 本题是一个关于三角形是否能成立…

概述、搭建Redis服务器、部署LNP+Redis、创建Redis集群、连接集群、集群工作原理

Top NSD DBA DAY09 案例1:搭建redis服务器案例2:常用命令限案例3:部署LNPRedis案例4:创建redis集群 1 案例1:搭建redis服务器 1.1 具体要求如下 在主机redis64运行redis服务修改服务运行参数 ip 地址192.168.88.6…

Elasticsearch:如何在 Ubuntu 上安装多个节点的 Elasticsearch 集群 - 8.x

Elasticsearch 是一个强大且可扩展的搜索和分析引擎,可用于索引和搜索大量数据。 Elasticsearch 通常用于集群环境中,以提高性能、提供高可用性并实现数据冗余。 在本文中,我们将讨论如何在 Ubuntu 20.04 上安装和配置具有多节点集群的 Elast…

关于Linux Docker springboot jar 日志时间不正确 问题解决

使用Springboot项目的jar,制作了一个Docker镜像,启动该镜像后发现容器和容器中的Springboot 项目的日志时间不正确。 解决 查看容器时间命令为: docker exec 容器id date 1. 容器与宿主机同步时间 在启动镜像时候把操作系统的时间通过&q…

SpringBoot创建和使用

spring core的方式来写代码还是比较繁琐的,而spring boot就是帮助程序员使用spring开发的一个脚手架(boot),它是一个用于构建Java应用程序的开源框架,旨在简化开发流程并提高生产效率。它的主要优点有: 快速…

CSS简介

目录 CSS CSS概念 核心概念 为什么需要CSS 语法 CSS的引入方式 内联样式(行内样式) 内部样式 外部样式(推荐) CSS CSS概念 CSS(Cascading Style Sheets)层叠样式表,又叫级联样式表&am…

【Vue-Router】导航守卫

前置守卫 main.ts import { createApp } from vue import App from ./App.vue import {router} from ./router // import 引入 import ElementPlus from element-plus import element-plus/dist/index.css const app createApp(App) app.use(router) // use 注入 ElementPlu…

ShowMeBug CEO李亚飞受邀参加深圳青年创新创业系列沙龙电子信息专场

7月13日下午,由深圳市科技交流服务中心(深圳市科技专家委员会办公室)主办,深圳新一代产业园承办的“2023深圳青年创新创业系列沙龙——电子信息专场”活动举行。ShowMeBug CEO李亚飞受邀参加此次活动。 深圳市科学技术协会党组成员…

微信小程序真机调试异常cmdId 1006, errCode-50011-已解决

cmdId 1006, errCode-50011 起因 小程序在模拟器上预览没问题,真机调试和体验版首页打不开,点展开显示cmdId 1006, errCode-50011 解决 查了下1006, 说是广告, 我没接广告,这个也不是错误码 1006广告组件被驳回你的广告正在被审核,无法展现广告后来找到几个类似的帖子…

元宇宙时代超高清视音频技术白皮书关于流媒体协议和媒体传输解读

流媒体协议 元宇宙业务场景对流媒体传输的实时性和互动性提出了更高的要求,这就需要在传统的 RTMP、SRT、 HLS 等基础上增加实时互动的支持。实时互动,指在远程条件下沟通、协作,可随时随地接入、实时地传递虚实融合的多维信息,身…

万宾燃气管网监测解决方案,守护城市生命线安全

方案背景 城市燃气管网作为连接天然气长输管线与天然气用户的桥梁,担负着向企业和居民用户直接供气的重要职责。随着城市燃气需求的急剧增加,城市燃气管网规模日趋庞大,安全隐患和风险也随之增加。目前,我国燃气管网的运行仍存在…

Mathematica(42)-计算N个数值的和

比如,我们要用Mathematica求得到下面的式子: 这就需要用到一个函数:Sum 具体地,Sum函数的使用形式如下: 因此,按照公式就可以得到下面的结果: 如果,我们想要将求和号也加进去&#…

【AIGC 讯飞星火 | 百度AI|ChatGPT| 】智能对比

AI智能对比 🍸 前言🍺 概念类对比🍵 讯飞🍵 百度AI🍵 chatGPT 🍹 功能类对比☕ 讯飞☕ 百度AI☕ chatGPT 🥃 可输入字数对比🥤 百度AI🥤 讯飞🥤 chatGPT &…

【Django】Task1安装python环境及运行项目

【Django】Task1安装python环境及运行项目 写在最前 8月份Datawhale组队学习,在这个群除我佬的时代,写一下blog记录学习过程。 参考资源: 学习项目github:https://github.com/Joe-2002/sweettalk-django4.2 队长博客&#xff1a…

RocketMQ 消息消费 轮询机制 PullRequestHoldService

1. 概述 先来看看 RocketMQ 消费过程中的轮询机制是啥。首先需要补充一点消费相关的前置知识。 1.1 消息消费方式 RocketMQ 支持多种消费方式,包括 Push 模式和 Pull 模式 Pull 模式:用户自己进行消息的拉取和消费进度的更新Push 模式:Broker…

探索心律失常:病因、诊断与治疗以及与肠道菌群的关联

谷禾健康 你是否有时会感到心悸、心慌、胸闷、气短、头晕、乏力?你是否有时感觉自己的心跳过快或过慢? 如果有上述情况,就要引起重视了,你可能存在心律失常。心律失常是最常见的心脏疾病之一,涉及到心脏的电活动节奏异…

麻辣烫数据可视化,麻辣烫市场将持续蓬勃发展

麻辣烫,这道源自中国的美食,早已成为人们生活中不可或缺的一部分。它独特的香辣口味,让人忍不住每每流连忘返。与人们的关系,简直如同挚友一般。每当寒冷的冬日或疲惫的时刻,麻辣烫总是悄然走进人们的心房,…

i.MX6ULL开发板无法进入NFS挂载文件系统的解决办法

问题 使用NFS网络挂载文件系统后卡住无法进入系统。 解决办法 此处不详细讲述NFS安装流程 查看板卡挂载在/home/etc/rc.init下的自启动程序 进入到../../home/etc目录下,查看rc.init文件,首先从第一行排查,查看/home/etc/netcfg文件代码内容&…

Flask-SQLAlchemy

认识Flask-SQLAlchemy Flask-SQLAlchemy 是一个为 Flask 应用增加 SQLAlchemy 支持的扩展。它致力于简化在 Flask 中 SQLAlchemy 的使用。SQLAlchemy 是目前python中最强大的 ORM框架, 功能全面, 使用简单。 ORM优缺点 优点 有语法提示, 省去自己拼写SQL,保证SQL…