【2023最详细】性能测试重点和各项性能测试流程
前言
一、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)系统性能瓶颈分析与性能调优
① 性能分析调优模型
② 性能分析调优思想:分层分析、科学论证、问题追溯与归纳总结。
③ 性能调优技术,一般包括:缓存调优;同步转异步推送;拆分;任务分解与并行计算;索引与分库分表
最后
既然看到这里,在收藏的同时,也请不吝啬的点个赞呗!期待 ~
绵薄之力【资源分享】
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方进群自行领取即可,拿走不谢。
【2023最详细】性能测试重点和各项性能测试流程相关推荐
- 性能测试怎么做?性能测试重点和各项性能测试流程(超级详细)
目录:导读 前言 一.Python编程入门到精通 二.接口自动化项目实战 三.Web自动化项目实战 四.App自动化项目实战 五.一线大厂简历 六.测试开发DevOps体系 七.常用自动化测试工具 八 ...
- 国产开发板各项性能测试--米尔MYD-YT507H开发板
本篇测评由电子工程世界的优秀测评者"qinyunti"提供. 此次的板卡测试,是米尔MYD-YT507H开发板的各项性能测试. CoreMark跑分 CoreMark是用在嵌入式系 ...
- 细说Java性能测试第三课 性能测试详解2
如何制定一份有效的性能测试方案? 上一讲我们学习了性能测试的场景,并且明确了每个场景的核心意义,这一讲我将带你学习如何做好一份性能测试方案,相信你对测试方案这个概念并不陌生,那如何做好一份性能测试方案 ...
- 性能测试工具Loadrunner以及性能测试的流程以及每一个步骤的流程和结果分析
[文章末尾给大家留下了大量的福利] 性能测试工具Loadrunner Loadrunner是HP公司研发的性能测试工具,原理是通过刻录传输协议生成脚本,增强脚本以后模拟大量用户并发进行性能测试. 对于 ...
- 性能测试的需求分析,性能测试的必要性
性能测试需求分析 性能测试需求分析,与传统的功能测试需求分析有所不同,功能测试需求分析重点在于从用户层面分析被测对象的功能性.易用性等质量特性,性能测试则需要从终端用户应用,系统架构设计,硬件配置等 ...
- 性能测试 性能测试实战(八)Jmeter性能测试平台开发,性能测试平台架构解析 ,性能测试平台搭建 分布式性能压测平台 Jmeter分布式性能测试管理平台 性能测试平台示例案例 《完结篇》
文章目录 一.前言 二.Jmeter分布式性能测试平台 介绍 1.Jmter分布式性能测试平台 简介 2.Jmeter分布式性能测试平台 优秀案例1 3.Jmeter分布式性能测试平台 优秀案例2 4 ...
- java异步刷新集合,同步和异步集合的性能测试,异步集合性能测试,package cn.o
同步和异步集合的性能测试,异步集合性能测试,package cn.opackage cn.outofmemory.snippets.core;import java.util.ArrayList;im ...
- 服务器性能测试工具及实战,性能测试实战--《软件测试52讲》
1.性能测试工具常见5组件及作用: 模拟用户行为生成脚本:loadrunner有录制功能,转化为基于协议的请求.jmeter有badboy 压力产生器:可能由于压力产生器本身的性能瓶颈(设备本身也会存 ...
- 微信小程序开发详细步骤(企业小程序开发流程)
今天珍奶bb给大家简单唠唠微信小程序开发详细步骤(企业小程序开发流程)? 微信小程序制作流程是什么?微信小程序制作模板套用怎么操作?今天珍奶bb给大家简单唠唠微信小程序制作流程是什么? 在唠微信小程序 ...
最新文章
- 【LeetCode 剑指offer刷题】字符串题6:67 把字符串转成整数
- UnicodeDecodeError解决办法
- go int 转切片_DW-Go语言编程-Task06-数组、切片
- 关于流控器件和压控器件
- 单片机数字滤波算法如何实现?(附代码)
- c++ dll 类使用_在.Net Core 中使用钩子
- 前端学习(418):京东制作页面26中间模块划分
- nginx的脚本引擎(一)
- python开源项目新手_10大Python开源项目推荐(Github平均star2135)
- 智慧社区互动教室_利用研究与社区互动
- ES6学习笔记(对象)
- Windows 8 页面应用测试(1)
- HTTP 权威指南 详解 (推荐阅读 )
- mysql意外停止后数据库恢复
- 遗补:“预防‘磁碟机’病毒”
- mysql 清理relay日志_mysql 清除relay-log文件方法
- 实时互联网的隐形风口
- 10电脑睡眠后自动关机怎么回事 win_win10电脑睡眠变关机怎么解决_win10睡眠变自动关机的处理方法-系统城...
- 如何进行隐私协议测试
- 深度学习入门 (九):卷积层和池化层的实现