【性能测试入门必看】性能测试理论知识

news2024/10/4 14:55:43

一、性能测试理论知识

1、常用的七种性能测试方法

(1) 后端性能测试:其实,你平时听到的性能测试,大多数情况下指的是后端性能测试,也就是服务器端性能测试。后端性能测试,是通过性能测试工具模拟大量的并发用户请求,然后获取系统性能的各项指标,并且验证各项指标是否符合预期的性能需求的测试手段。

(2) 前端性能测试:通常来讲,前端性能关注的是浏览器端的页面渲染时间、资源加载顺序、请求数量、前端缓存使用情况、资源压缩等内容,希望借此找到页面加载过程中比较耗时的操作和资源,然后进行有针对性的优化,最终达到优化终端用户在浏览器端使用体验的目的。

其中几个最典型也是最重要的规则,来帮助你理解前端性能测试优化的关注范围:

① 减少 http 请求次数:http 请求数量越多,执行过程耗时就越长,所以可以采用合并多个图片到一个图 片文件的方法来减少 http 请求次数,也可以采用将多个脚本文件合并成单一文件的方式减少 http 请求次数;

② 减少 DNS 查询次数:DNS 的作用是将 URL 转化为实际服务器主机 IP 地址,实现原理是分级查找,查找过程需要花费 20~100ms 的时间,所以一方面我们要加快单次查找的时间,另一方面也要减少一个 页面中资源使用了多个不同域的情况;

③ 避免页面跳转:页面跳转相当于又打开一个新的页面,耗费的时间就会比较长,所以要尽量避免使用页面跳转;n

④ 使用内容分发网络(CDN):使用 CDN 相当于对静态内容做了缓存,并把缓存内容放在网络供应商 (ISP)的机房,用户根据就近原则到 ISP 机房获取这些被缓存了的静态资源,因此可以大幅提高性能;

⑤ Gzip 压缩传输文件:压缩可以帮助减小传输文件的大小,进而可以从网络传输时间的层面来减少响应

时间;

(3) 代码级性能测试:代码级性能测试,是指在单元测试阶段就对代码的时间性能和空间性能进行必要的测试和评估,以防止 底层代码的效率问题在项目后期才被发现的尴尬。

(4) 压力测试:压力测试,通常指的是后端压力测试,一般采用后端性能测试的方法,不断对系统施加压力,并验证系统化处于或长期处于临界饱和阶段的稳定性以及性能指标,并试图找到系统处于临界状态时的主要瓶颈点。

(5) 配置测试:配置测试,主要用于观察系统在不同配置下的性能表现,通常使用后端性能测试的方法:通过性能基准测试建立性能基线;在此基础上,调整配置;基于同样的性能基准测试,观察不同配置条件下系统性能的差异,根本目的是要找到特定压力模式下的最佳配置。这里需要注意的是,“配置”是一个广义配置的概念,包含了以下多个层面的配置:宿主操作系统的配置;服务器的配置;数据库的配置;JVM 的配置; 网络环境的配置等;

(6) 并发测试:在实际项目中,我建议在要求的并发数上进行适当放大,比如要求的并发数是 100,那我们集合点并发数可以设置为 120。

(7) 可靠性测试:可靠性测试,是验证系统在常规负载模式下长期运行的稳定性。虽然可靠性测试在不同公司的叫法不同,但其本质就是通过长时间模拟真实的系统负载来发现系统潜在的内存泄漏、链接池回收等问题。

2、性能测试应用的几大领域

(1) 能力验证

① 能力验证是最常用,也是最容易理解的性能测试的应用领域,主要是验证“某系统能否在 A 条件下具有B 能力”,通常要求在明确的软硬件环境下,根据明确的系统性能需求设计测试方案和用例。能力验证这个领域最常使用的测试方法,包括后端性能测试、压力测试和可靠性测试。

(2) 能力规划

① 能力规划关注的是,如何才能使系统达到要求的性能和容量。通常情况下,我们会采用探索性测试的方式来了解系统的能力。能力规划解决的问题,主要包括以下几个方面:①能否支持未来一段时间内的用户增长;②应该如何调整系统配置,使系统能够满足不断增长的用户数需求;③应用集群的可扩展性验证,以及寻找集群扩展的瓶颈点;④数据库集群的可扩展性验证;⑤缓存集群的可扩展性验证;

(3) 性能调优

① 这个领域最常用的测试方法,涵盖了我在上面分享的七大类测试方法,即后端性能测试、前端性能测试、代码级性能测试、压力测试、配置测试、并发测试和可靠性测试。

(4) 缺陷发现

① 缺陷发现,是一个比较直接的应用领域,通过性能测试的各种方法来发现诸如内存泄露、资源竞争、不合理的线程锁和死锁等问题。 缺陷发现,最常用的测试方法主要有并发测试、压力测试、后端性能测试和代码级性能测试

(5) 各个应用领域需要用到的测试方法,如下图所示:

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

  1. 文档获取方式:

  2. 加入我的软件测试交流群:1007119548免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

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

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

相关文章

20240219画图程序

1. PTZ在惯性态时,不同视场角下的【发送】角速度和【理论响应】角速度 1.1 优化前 import numpy as np import matplotlib.pyplot as plt# PTZ在惯性态时,不同视场角下的【发送】角速度和【理论响应】角速度 ATROffset_x np.linspace(0, 60, 120) y2 …

OpenAI 全新发布文生视频模型 Sora,支持 60s 超长长度,有哪些突破?将带来哪些影响?

Sora大模型简介 OpenAI 的官方解释了在视频数据基础上进行大规模训练生成模型的方法。 我们下面会摘取其中的关键部分罗列让大家快速get重点。 喜欢钻研的伙伴可以到官网查看技术报告: https://openai.com/research/video-generation-models-as-world-simulator…

【图论经典题目讲解】CF786B - Legacy 一道线段树优化建图的经典题目

C F 786 B − L e g a c y \mathrm{CF786B - Legacy} CF786B−Legacy D e s c r i p t i o n \mathrm{Description} Description 给定 1 1 1 张 n n n 个点的有向图,初始没有边,接下来有 q q q 次操作,形式如下: 1 u v w 表示…

GO和KEGG富集分析

写在前面 我们《复现SCI文章系列教程》专栏现在是免费开放,推出这个专栏差不多半年的时间,但是由于个人的精力和时间有限,只更新了一部分。后续的更新太慢了。因此,最终考虑后还是免费开放吧,反正不是什么那么神秘的东…

关于数据结构的定义以及基本的数据结构

在计算机科学中,数据结构是指用于组织和存储数据的方式或方法。它涉及到在计算机内存中存储、管理和操作数据的技术和原则。数据结构不仅仅是简单地存储数据,还可以提供高效的数据访问和操作方式,以满足特定的需求。 以下是每个数据结构的详细…

mkcert安装教程

1、下载 官方文档:https://github.com/FiloSottile/mkcert#mkcert 下载链接:https://github.com/FiloSottile/mkcert/releases 2、安装,该文件目录下打开cmd(可以把文件复制到别的文件夹),执行命令 //命令…

开源模型应用落地-工具使用篇-向量数据库进阶(四)

一、前言 通过学习"开源模型应用落地"系列文章,我们成功地建立了一个完整可实施的AI交付流程。现在,我们要引入向量数据库,作为我们AI服务的二级缓存。本文将继续基于上一篇“开源模型应用落地-工具使用篇-向量数据库(三…

FreeRTOS移植到GD32

目录 一、GD32基础工程创建: 1、创建如下文件夹 2、在keil5创建工程 3、在工程添加相关.c文件和头文件路径 4、实例:实现LED闪烁功能 二、在基础工程添加FreeRTOS: 1、FreeRTOS中的文件: 2、添加的源文件: 3、添加的头文件路径: 4、…

机器人常用传感器分类及一般性要求

机器人传感器的分类 传感技术是先进机器人的三大要素(感知、决策和动作)之一。根据用途不同,机器人传感器可以分为两大类:用于检测机器人自身状态的内部传感器和用于检测机器人相关环境参数的外部传感器。 内部传感器 内部传感…

【JavaEE】_HTML常用标签

目录 1.HTML结构 2. HTML常用标签 2.1 注释标签 2.2 标题标签:h1~h6 2.3 段落标签:p 2.4 换行标签:br 2.5 格式化标签 2.6 图片标签:img 2.7 超链接标签:a 2.8 表格标签 2.9 列表标签 2.10 表单标签 2.10…

航班进出港|航班进出港管理系统|基于springboot航班进出港管理系统设计与实现(源码+数据库+文档)

航班进出港管理系统目录 目录 基于springboot航班进出港管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 5、航班信息管理 (1) 航班信息管理 (2)起飞降落申请管理 (3)公告管理 &…

辽宁博学优晨教育科技有限公司视频剪辑培训专业之选

随着数字时代的到来,视频剪辑技术已成为各行各业不可或缺的一项技能。为了满足市场需求,辽宁博学优晨教育科技有限公司(以下简称“博学优晨”)推出了专业的视频剪辑培训课程,旨在为广大学员提供系统、高效的学习机会。…

AMD FPGA设计优化宝典笔记(4)复位桥

高亚军老师的这本书《AMD FPGA设计优化宝典》,他主要讲了两个东西: 第一个东西是代码的良好风格; 第二个是设计收敛等的本质。 这个书的结构是一个总论,加上另外的9个优化,包含的有:时钟网络、组合逻辑、触…

面试系列之《Spark》(持续更新...)

1.job&stage&task如何划分? job:应用程序中每遇到一个action算子就会划分为一个job。 stage:一个job任务中从后往前划分,分区间每产生了shuffle也就是宽依赖则划分为一个stage,stage这体现了spark的pipeline思…

picker选择器-年月日选择

从底部弹起的滚动选择器。支持五种选择器,通过mode来区分,分别是普通选择器,多列选择器,时间选择器,日期选择器,省市区选择器,默认是普通选择器。 学习一下日期选择器 平台差异说明 日期选择默…

k8s学习(RKE+k8s+rancher2.x)成长系列之简配版环境搭建(三)

3.19.切换RKE用户,并做免密登录(三台机器相互免密) su rke cd~ ssh-keygen[rke@master.ssh]$ssh-copy-id rke@slaver2 [rke@master.ssh]$ssh-copy-id rke@slaver1 [rke@master.ssh]$ssh-copy-id rke@master3.20.搭建RKE集群 为了方便理解,我们把通RKE部署的Kubernetes集群称…

浏览网页记录工具,企业如何查看员工网页浏览记录

随着信息技术的飞速发展,网络已成为企业日常运营和员工工作中不可或缺的一部分。然而,随之而来的是网络安全和员工上网行为管理的挑战。在这种情况下,浏览网页记录工具成为了企业监控员工上网行为的重要手段之一。 一、浏览网页记录工具的重要…

MySQL 基础知识(十)之 MySQL 架构

目录 1 MySQL 架构说明 2 连接层 3 核心业务层 3.1 查询缓存 3.2 解析器 3.3 优化器 3.4 执行器 4 存储引擎层 5 参考文档 1 MySQL 架构说明 下图是 MySQL 5.7 及其之前版本的逻辑架构示意图 MySQL 架构大致可分为以下三层: 连接层:负责跟客户…

unity学习(29)——GameInfo角色信息

1.把GameInfo.cs PlayerModel.cs Vector3.cs Vector4.cs PlayerStateConstans.cs GameState.cs依次粘到model文件夹中,此时项目没有错误,如下图所示; 对应处所修改的代码如下: case LoginProtocol.LOGIN_SRES://1 {Debug.Log(&qu…

软件工程师,AI手机元年到来,我们怎么办

概述 OPPO创始人、总裁、CEO陈明永在2024年2月18日发表了名为《开启AI手机新时代》的内部信。陈明永认为:“2024年是AI手机元年。未来五年,AI对手机行业的影响,完全可以比肩当年智能手机替代功能机”。他预测AI手机时代将成为继功能机、智能手…