从“入门”到“专家”,一份3000字完整的性能测试体系的知识分享
随着科技的飞速发展,软件产品广泛应用于各个行业领域,人们对计算机和网络的依赖性越来越大,对新奇事物也越来越感兴趣,成千上万的用户活跃在庞大的网络系统中,这给提供服务的系统带来严重的负荷,"高并发"、"数据集中"便是系统网络发展中最明显的特征。
时过境迁,IT服务系统的性能测试与优化越来越重要,性能测试已经不再是一个可有可无的工作,越来越多的企业在产品测试的过程中都将性能测试列为工作内容的重要环节。


一、工作中的性能测试难题
如果你恰好刚刚进入一家新公司,做了一段时间的功能测试,你觉得没问题可以胜任,信心十足。可好景不长,突然领导让你开展性能测试,作为想保住工作的测试员你无法拒绝,但作为初出茅庐的测试新人,你除了手足无措,只能默默慨叹自己能力尚欠,眼前只会出现一个又一个无从下手的难题:
1、项目需求缺乏的情况下,如何开展性能测试需求分析工作?
2、系统没有相关的历史数据,也不明了未来上线后的用户情况,如何设计并发用户数和业务数据量呢?
3、不是每一个功能或是每一组业务都要进行性能测试,如何进行性能测试必要性分析呢?如何分析并确认性能测试范围?
4、性能测试指标有那么多,比功能测试的预期结果需要考虑的内容要多很多,如何进行性能测试指标的定义?如何选择合理的性能测试指标?
5、负载压测执行后,如何判断是否存在性能故障?
6、如果出现了性能故障,如何进行调优?如何确定调优结果?
听听15年资深测试工程师分享的性能测试经验及必备干货,或许能帮助你解决很多工作中的迷惑。
二、功能测试如何转性能测试?
提问者:小北
面临状况:做了大半年的功能测试,日常工作也就测测软件界面和软件逻辑,时间久了觉得枯燥无味,薪资不高是硬伤,想转性能测试方向,但感觉需要学习的东西太多了,无从下手,很是苦恼,求大神指点迷津。
大佬即时贴:有这种想转的思想很好。相信有很多和你同样情况的同学,同时,半年的经验一下子转过来是不可能的。
首先,你已经做了大半年功能测试了,相信已经具备了自己搭建测试环境的能力,对整个系统也有很深的理解了。这个过程是每个测试员必须经历的,可以提高自己的学习能力,也可以为日后的进阶打下坚实的基础。建议多跟测试项目,加深学习和理解被测项目用了哪些技能。
其次,学习一款性能测试工具。我本人不建议上来就学那些操作系统、数据库等知识。毕竟先从工具入手是最快最合适的,至于会不会分析,那是知识的累积程度和思维方式的问题,是后面的问题,如果真想转,先学一款工具,把工具玩熟。且在功能测试中,如果有性能需求,多多参与。
性能能测试拼的是对整个计算机体系的理解,而不仅仅是工具。但我们必须先掌握工具,以此为切点快速的入门。
三、做性能测试,该掌握什么?
性能测试工作阶段流程
1、性能测试需求分析(准备阶段)
明确性能测试范围、定义性能测试指标
2、性能测试计划
确定测试领域、分析用户场景、确定性能目标、性能测试工作安排、制定实施时间、性能测试风险预防
3、性能测试设计(时间比重大)
测试环境设计、测试场景设计、测试用例设计、脚本和辅助工具的开发及使用
4、性能测试实施
构建性能测试场景、执行测试脚本、测试结果记录
5、性能测试故障定位
6、性能测试调优
性能测试执行过程中的各种坑
1、性能测试环境监控问题
2、缓存处理优化问题
3、Linux下MySQL跟踪
4、通过git获取优化后代码
5、验证码校验问题
6、批量数据构造+存储过程
7、MySQL占用CPU过高
8、最多可以支持多少并发
9、不通过上游流程,如何直接加压
10、性能测试用例设计
11、批量数据构造+自动化技术
12、复杂性能测试设置
13、如何评估当前系统性能状况
14、架构对数据库性能的影响
15、多个业务性能测试
16、集合点对性能的影响
17、批量数据构造+SQL命令
18、调优前后性能指标对比
性能测试执行工作全面演绎
1、部署性能测试环境:
LNMP:Linux+Nginx+MySQL+PHP
2、性能测试执行:
Fiddler+Jmeter+PhpMyAdmin+Linux(xshell)+NMON
3、性能测试故障定位:
缓存问题、数据初始化问题、设计架构问题
4、性能测试调优:
缓存调优、数据库调优、代码调优
关于功能测试的文章,网络上可以查找到很多,但是关于性能测试,专业系统的文章却寥寥无几,很少有文章介绍如何优化系统的性能。
当然,性能测试只是软件测试工作中的一部分,想从初级的功能测试到最高端的测试开发,还有很多技能是需要去掌握的,同样也是有很多窍门的!
今天的分享就到此结束了, 如果文章对你有帮助,记得点赞,收藏,加关注。会不定期分享一些干货哦......
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入下方我们的测试交流群大家一起讨论交流学习。

相关文章:
从“入门”到“专家”,一份3000字完整的性能测试体系的知识分享
随着科技的飞速发展,软件产品广泛应用于各个行业领域,人们对计算机和网络的依赖性越来越大,对新奇事物也越来越感兴趣,成千上万的用户活跃在庞大的网络系统中,这给提供服务的系统带来严重的负荷,"高并…...
构建对话机器人:Rasa3安装和基础入门
在开源对话机器人中,Rasa社区很活跃,在国内很多企业也在使用Rasa做对话机器人,有rasa开发经验的往往是加分项。 当年实习的时候接触到了Rasa,现在工作中也使用Rasa,因此,写写一些经验文档,有助后…...
Spark计算框架入门笔记
Spark是一个用于大规模数据处理的统一计算引擎 注意:Spark不仅仅可以做类似于MapReduce的离线数据计算,还可以做实时数据计算,并且它还可以实现类似于Hive的SQL计算,等等,所以说它是一个统一的计算引擎 既然说到了Spar…...
入职数据分析公认的好书|建议收藏
众所周知,数据分析经常出现在我们的日常生活中,各行各业都需要数据分析。可你知道什么是数据分析?它在企业里到底扮演什么角色?以及如果我们自己也想拥有数据分析的能力,以便更好的满足数据分析的需求,我们…...
Linux查找文件和目录,重定向输出 ,系统默认运行级别的查看和设置理论和练习
♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的绽放࿰…...
Redis源码---键值对中字符串的实现,用char*还是结构体
目录 前言 为什么 Redis 不用 char*? char* 的结构设计 操作函数复杂度 SDS 的设计思想 SDS 结构设计 SDS 操作效率 紧凑型字符串结构的编程技巧 小结 前言 对于 Redis 来说,键值对中的键是字符串,值有时也是字符串在 Redis 中写入一…...
算法 - 剑指Offer 表示数值的字符串
题目 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。 数值(按顺序)可以分成以下几个部分: 若干空格 一个 小数 或者 整数 (可选)一个 ‘e’ 或 ‘E’ ,后面跟着一个 …...
初识机器学习
监督学习与无监督学习supervised learning:监督学习,给出的训练集中有输入也有输出(标签)(也可以说既有特征又有目标),在此基础上让计算机进行学习。学习后通过测试集测试给相应的事物打上标签。…...
VsCode安装PlatformIO 开发ESP arduino,买的板子或者随便ESP,PlatformIO添加Board(不是自定义Board)
这次主要记录怎么给新建选板子的时候没有的板子下程序 我这里是一块 WiFi Kit 32 (V3) PlatformIO里面只有到V2 先从头开始,安装PlatformIO 安装PlatformIO 直接搜索安装 安装有时候会比较慢,左侧出现蚂蚁图标之后点击会显示 右下角会提示正在安…...
golang 复杂数据结构解析
[{"key":"15275771","pack":{"1":[{"name":"消息配置","id":15275771,"version":1,"createUser":"molaifeng","data":"test"}]},"callback&qu…...
不怕被AirTag跟踪?苹果Find My技术越来越普及
苹果的 AirTag 自推出以来,如何有效遏制用户用其进行非法跟踪,是摆在苹果面前的一大难题。一家为执法部门制造无线扫描设备的公司近日通过 KickStarter 平台,众筹了一款消费级产品,可帮助用户检测周围是否存在追踪的 AirTag 等设备…...
Linux驱动中的open函数是如何从软件打通硬件呢?
一、前言 打开文件是Linux系统中最基本的操作之一,open函数可以实现打开文件的功能。下面我将为您介绍open函数打通上层到底层硬件的详细过程。 二、open函数打通软硬件介绍 open函数是系统调用中的一种,其原型定义在头文件unistd.h中: #…...
Java 基础语法
Java 是一门广泛使用的编程语言,由于其简单易学和可移植性,已成为开发 Web 应用程序、移动应用程序、桌面应用程序以及企业级应用程序的首选语言之一。在本文中,我们将探讨 Java 的基础语法,包括变量、数据类型、运算符、控制流等…...
python下如何安装并使用matplotlib(画图模块)
在搜索命令中输入cmd,以管理员身份运行。 输入以下命令,先对pip安装工具进行升级 pip install --upgrade pip 升级完成 之后使用pip安装matplotlib pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple 也可以使用pycharm来安装matp…...
系统分析师---计算机网络思维导图
TCP、IP协议簇(4星) 传输协议:TCP有连接、可靠、有回应机制、三次握手基于TCP的应用层协议:POP3:邮件收取,默认端口110SMTP:邮件发送,默认端口25FTP:文件传输协议&#…...
算法练习(七)数据分类处理
一、数据分类处理 1、题目描述: 信息社会,有海量的数据需要分析处理,比如公安局分析身份证号码、 QQ 用户、手机号码、银行帐号等信息及活动记录。采集输入大数据和分类规则,通过大数据分类处理程序,将大数据分类输出…...
nohup ./startWebLogic.sh >out.log 2>1 解析
在启动weblogic的时候我们经常看到如下的命令: nohup ./startWebLogic.sh >out.log 2>&1 & 从09年开始用weblogic到现在已经过去3年多了 ,今天终于将该命令理解清楚了。 其中 0、1、2分别代表如下含义: 0 – stdin (standa…...
OpenCV 坡度计算(基于DEM,C++版本)
文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 假设一个点位于曲面 z = f ( x , y ) z=f(x,y) z=...
IDEA上使用git,知道这几步操作就够了!
前言由于一年多没用git(种种原因不堪回首),所以在上班当天,整个人都不好了,从拉取代码到提交代码,整整花费了不少时间,而且有些操作都不知道啥作用,点也不是,不点也不是&…...
Shell的退出状态(if语句判断的是某个命令的退出状态)
以下内容源于C语言中文网的学习与整理,如有侵权,请告知删除。 一、退出状态 (1)不管是 Bash 内置命令,还是外部的 Linux 命令,还是自定义的 Shell 函数,当它运行结束或者退出时,都…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...
HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
C++ 设计模式 《小明的奶茶加料风波》
👨🎓 模式名称:装饰器模式(Decorator Pattern) 👦 小明最近上线了校园奶茶配送功能,业务火爆,大家都在加料: 有的同学要加波霸 🟤,有的要加椰果…...
Leetcode33( 搜索旋转排序数组)
题目表述 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 < k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...
