性能测试怎么做?性能测试重点和各项性能测试流程(超级详细)

news2024/11/16 13:22:00

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

性能测试基础

1)性能测试一般分为:负载测试、压力测试、基准测试、稳定性测试、扩展性测试。

2)常见的性能测试指标:响应时间;TPS/QPS;并发用户;PV/UV;点击率;吞吐量;资源开销

3)性能测试的场景:
业务场景:系统的业务处理流程;
测试场景:对业务场景的真实模拟;
单场景:只涉及单个业务流程的测试场景;
混合场景:每个业务流程在混合的业务流程中占的比重会不同,尽可能符合实际的业务需要。

性能测试目标

1)了解系统的各项性能指标。
比如,通过压测可以了解系统能承受多大的并发访问量、系统的平均响应时间是多少、系统的TPS是多少等。

2)发现系统中存在的性能问题。
比如,系统中是否存在负载均衡不均、内存泄漏、连接泄漏、线程安全、死锁、网络架构或者应用架构扩展性问题,也能发现系统的性能瓶颈在何处。

① 负载均衡不均匀
一般指的是在并发的情况下,每台服务器接收的并发压力不均匀,从而导致部分服务器因为压力过大而出现性能急剧下降,以及部分服务器因为并发过小而出现资源浪费的情况。

② 内存泄漏
是指应用程序代码在每次执行完后,不会主动释放内存资源而导致内存使用一直增加,最终会使服务器物理内存全部耗光,程序运行逐渐变慢,最终因为无法申请到内存而退出运行。内存泄漏多数情况下是非常缓慢的增加,不容易被发现,一般需要通过高并发性能压测才能暴露。

③ 连接泄漏
种类非常广泛,可以是数据库连接泄漏、HTTP连接泄漏或者其他的TCP/UDP连接泄漏等。除了系统实际情况需要建立长连接外,一般短连接都应该是用完就需要关闭和释放。

④ 线程安全问题
在高并发访问的多线程处理中经常会出现,表现为多个线程先后更改数据,造成所得到的数据全部是脏数据。

⑤ 死锁
出现在多并发情况下,为保证有限的资源正常使用,从而上锁,最后因为一线程(进程)无法及时释放资源,导致死锁。常见的有系统死锁、数据库死锁等。

⑥ 扩展性问题
一般是指性能指标无法满足预期的情况下,通过横向或者纵向扩展硬件资源后,系统性能指标无法按照一定的线性规律进行快速递增。

3)解决性能压测中存在的问题和性能瓶颈。

性能测试基本流程
请添加图片描述

1)性能需求分析

① 熟悉业务流程,明确此次性能测试的目标,找到业务需求的性能点。

② 熟悉系统的应用架构、技术架构、数据架构、部署架构等,找到与其他系统的交互流程,明确系统部署的硬件配置信息、软件配置信息。

③ 把对性能测试有重要影响的关键点列举出来。

比如用户发起请求的顺序、请求之间的相互调用关系;业务的数据流走向;被压测系统可能存在的重点资源消耗;应用的部署架构等。

④ 明确系统上线后可能会达到的最大并发用户数、用户期望的平均响应时间以及峰值时的业务吞吐量,并将这些信息转化为性能需求指标。

2)制定性能测试计划
测试计划一般本次测试的目的,各个阶段的时间点+对应负责人,以及本次性能测试风险的分析和控制。

3)编写性能测试方案
① 设计测试场景。
② 定义具体事务操作。
③ 针对每个场景,明确监控对象和可能的性能瓶颈点:监控对象:比如TPS、平均响应时间、击率、并发连接数、CPU、内存、IO等。可能的性能瓶颈点:比如数据库查询、Web务器服务转发、应用服务器等。
④ 定义测试策略:明确性能测试的类型、执行顺序、加压方式(压测需要)。
⑤ 选取性能测试工具。
⑥ 明确硬件配置和软件配置:硬件配置:服务器的CPU配置、内存配置、硬盘存储配置、集群环境下还要包括集群节点的数量配置等。软件配置:操作系统、应用版本、参数配置和网络配置。

4)编写性能测试案例,对压测场景细化。
① 描述预置条件:满足啥条件性能测试案例才可以执行。
②详细描述案例执行的步骤,包括:测试脚本的录制和编写脚本的调试;脚本的执行过程(比如如何加压、每个加压的过程持续多久等);要观察和记录的性能指标;需要明确性能曲线的走势;需要监控哪些性能指标等。
③ 描述性能测试预期需要达到的结果,比如:TPS需要达到多少;平比响应时间需要控制到多少以内;服务器资源的消耗需要控制在多少以内等。

ps:在实际工作中,你分析完性能需求之后,可以把测试计划、测试方案和测试案例合成一个文档,这块并没有严格的定义,可以按你们公司的流程来做。

5)搭建性能测试环境
6)构造性能测试数据
7)编写性能测试脚本
8)执行性能测试场景(案例)
9)分析性能测试结果,编写性能测试报告
10)系统性能瓶颈分析与性能调优

① 性能分析调优模型
请添加图片描述

② 性能分析调优思想:分层分析、科学论证、问题追溯与归纳总结。
③ 性能调优技术,一般包括:缓存调优;同步转异步推送;拆分;任务分解与并行计算;索引与分库分表

下面是我整理的2022年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

带奋斗一起飞翔,因为有了它,让我拥有理智之思;我才使过去的失误不再重演到今天的影片里;我才能使过去的成功在人生中继续升华;我才能真正收获金秋丰硕的果实,品味人生的快乐。

趁着年轻,多出去走走看看。读万卷书,不如行万里路,行万里路,不如阅人无数。愿你迈着青春的脚步,走向成功的人生!

成长总是由无数个平凡,艰辛的小步组成,但每一步绚烂的风景,都将化为启明的航灯,照亮那通往星辰大海的征程。

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

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

相关文章

【设计模式】过滤器模式(Filter Pattern)

过滤器模式属于结构型模式,但它并不属于我们常说的二十三种设计模式。主要是以相对解耦的方式来过滤一组对象。 文章目录过滤器模式的介绍优点应用场景过滤器模式的使用类图实现方法第一步,创建员工类第二步,创建过滤器接口第三步&#xff0c…

如何部署商城项目

如何部署商城项目 1.导入数据库 ​ 注意:先保证数据库开启了远程访问(见数据库安装和配置笔记)。 1.1设置数据库服务器编码 ​ vi /etc/my.cnf ​ 在[mysqld]下面添加 character_set_serverutf8 init_connectSET NAMES utf81.2打开本地…

RK3399平台开发系列讲解(中断篇)中断控制器(Generic Interrupt Controller)

🚀返回专栏总目录 文章目录 一、GIC硬件的实现形态二、主要的功能块三、中断类型四、中断状态沉淀、分享、成长,让自己和他人都能有所收获!😄 📢外围设备不是把中断请求直接发给处理器,而是发给中断控制器,由中断控制器转发给处理器。ARM公司提供了一种标准的中断控制…

NR CSI(二) the workflow of CSI report

微信同步更新欢迎关注同名modem协议笔记 本篇内容是对CSI report相关流程的整理,其描述主要集中在R16 38.331 38.321 38.214中,以实网中的一个配置开始,看下相关定义。 如上图实网中的配置,CSI-ReportConfig 对应的就是Reporting…

Cookie和Session的工作流程是什么样的?5min学懂:简易用户登录(前端+后端+数据库)

目录 前言 一、Cookie 1.1、Cookie从哪里来? 1.2、Cookie到哪里去? 二、Session 2.1、什么是sessionId? 三、Cookie和Session的区别 四、Cookie和Session的具体工作流程 五、代码实现用户登录 5.1、核心方法 5.2、代码 前言 想要了解Cookie和…

【设计模式】桥接模式(Bridge Pattern)

桥接模式属于结构型模式,主要解决因业务增长时滥用继承而导致的**“类爆炸”问题。桥接模式将一个树型的整体继承结构替换为由抽象的类(抽象化角色)组成的抽象部分和由实现接口(实现化角色)与实现类(具体实…

无法访问mybatis.dto.StudengInVO-使用maven编译报错

一、问题由来 最近一次拉代码后,合并代码然后进行编译时出现一个问题,使用maven在进行编译的时候报一个错,无法访问mybatis.dto.StudengInVO。 突然出现这个错误让自己感觉很奇怪,开发工具已经使用了好几个月,项目也已…

SSM毕设项目 - 基于SSM的汉服文化平台网站(含源码+论文)

文章目录1 项目简介2 实现效果2.1 界面展示3 设计方案3.1 概述3.2 系统流程3.3 系统结构设计4 项目获取1 项目简介 Hi,各位同学好呀,这里是M学姐! 今天向大家分享一个今年(2022)最新完成的毕业设计项目作品,【基于SSM的汉服文化…

(十三)Spring之JdbcTemplate

文章目录环境新增、删除与修改数据新增修改删除查询一个查询一个对象查询一个值查询多个对象批量操作批量添加批量修改批量删除使用回调函数使用德鲁伊连接池上一篇:(十二)Spring IoC注解式开发JdbcTemplate是Spring提供的一个JDBC模板类&…

高阶数据结构:二叉搜索树

本篇主要是在初级数据结构中介绍的二叉树的提升,了解二叉搜索树的特性。 文章目录 一、二叉搜索树的概念二、二叉搜索树操作 1、二叉搜索树的查找2、二叉搜索树的插入3、二叉搜索树的删除三、二叉搜索树的实现四、二叉搜索树的应用五、关于二叉树进阶面试题一、二叉…

大衣哥又有喜事了,孟文豪新作《克什克腾的眼泪》,是给他写的吗

农民歌唱家大衣哥又出新歌啦! 就在大衣哥被谷传民起诉不久,互联网上面又传出新消息,继《火火的情怀》之后,大衣哥的新歌《新时代的新农民》,又要和大家见面了。很多人不明白,大衣哥不过是一个农民歌唱家&am…

Java中的反射,枚举和Lambda表达式

一. 反射 1. 反射的概述 2. 反射的使用 反射常用的类 通过反射获取Class对象 获得Class类相关的方法 使用反射创建实例对象 使用反射获取实例对象中的构造方法 通过反射获取实例对象的属性 通过反射获取实例对象的方法 3. 反射的优缺点 二. 枚举 1…

Graalvm 安装和静态编译

文章目录1、下载2、graalvm安装3、native-image工具安装3.1 安装native-image3.2 安装C编译工具4、java编译成二进制exe4.1、普通的java命令行应用4.2、Swing应用编译4.3、使用maven插件静态编译4.4、javafx应用编译1、下载 文件下载:https://www.graalvm.org/down…

[附源码]计算机毕业设计JAVA剧本杀门店管理系统-

[附源码]计算机毕业设计JAVA剧本杀门店管理系统- 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM myb…

OBS-VirtualCam OBS的虚拟摄像头插件

OBS-VirtualCam 是OBS的一个虚拟摄像头插件,可以将OBS中的内容提供给一个虚拟摄像头,这样其它软件就可以使用这个内容了,这里试试这个插件功能。 1. 下载obs并安装 登录OBS Studio网站,下载windows版, 下载完成后并安装…

栈的基本操作

目录 一、什么是栈? 二、用单链表实现栈 三、用顺序表数组实现栈 一、什么是栈? 栈(stack)是一个先进后出(FILO-First In Last Out)的有序列表。 主要方法:入栈(push)…

SCA算法优化脉冲耦合神经网络的图像自动分割(Matlab代码实现)

🍒🍒🍒欢迎关注🌈🌈🌈 📝个人主页:我爱Matlab 👍点赞➕评论➕收藏 养成习惯(一键三连)🌻🌻🌻 🍌希…

【C语言】初识指针(终篇)

摸了一手秀发,发现还在~ 目录 1、指针运算 1.1指针加减整数 1.2指针减指针 1.3指针关系运算 2、二级指针 3、指针和数组 4、指针数组 前言: 大家好,我是拳击哥。上一期我们讲到了指针类型,指针的访问步长,野指针…

Redis数据类型总结

文章目录一、5种数据类型二、常用指令汇总三、应用汇总提示:以下是本篇文章正文内容,Redis系列学习将会持续更新 一、5种数据类型 Redis 数据存储格式:  ● redis 自身是一个 Map ,其中所有的数据都是采用 key : value 的形式存储。  ● 数…

如何设计用户体验测试用例

一、 什么是用户体验 UE: User Experience 用户体验。 用户体验是指用户在使用产品过程中的个人主观感受,即用户在使用一个产品之前、使用过程中、使用后的整体感受,包括行为、情感、喜好、生理和心里反应、成就等各个方面。 通俗的讲用户体…