什么是性能测试
要做性能测试,我们需要先弄清楚什么是性能测试,以及性能测试和通常的功能测试有什么差异?
首先,众所周知,功能测试是模拟一个人使用某个系统的某个功能,测试使用后的实际结果与预期结果是否一致;
性能测试与之最大的差别就就是,模拟N多个人同时使用某个功能,观察以下数据指标:
多久时间能收到结果,也就是我们常说的性能指标,RT【响应时间】
多少人能正常收到结果,也就是性能测试指标 最大并发用户数。
服务器在多人同时使用时资源消耗多少
所以,在执行和关注结果层面,性能和功能测试都有本质上的区别。
企业性能测试流程
在公司做性能测试流程跟功能测试流程也有一定差异,如下图所示:
第一步:性能测试准备
1.1 测试指定标准
功能迭代完成了,预发布完成后,功能稳定了,这是性能的准入原则;
而且是否有必要做性能测试需要进行评估。比如有些伪需求,简单的逻辑不会影响性能,不需要做性能测试;非核心模块做性能测试,投入产出比也比较低,也没有必要做。
1.2 性能需求分析、量化性能指标
产品的功能点很多。做哪些功能的性能测试?边界、范围要明确。讨论到底具体做哪些功能。
出性能报告的时候,性能标准是什么也要先明确,如果没有给出特殊指标值,就以行业标准来定。
行业内标准:【ART<1.5s,ERR<0.1%,服务器资源利用率<80%】
第二步:性能测试环境搭建
明确了需求后,开始搭建独立性能测试环境,性能测试环境要求:
独立网络(有线、局域网)
独立服务器 (硬件配置要与生成一致、服务部署架构要与生成一致,集群大小,可以缩减
并且要同步搭建性能测试结果监控平台:比如 prometheus,grafana,influxdb ,现在市面上很多监控都是基于prometheus+grafana的二次开发页面展示不一样的。为了方便直接对测试结果进行监控分析,我们可以提前搭建好这些监控平台。
第三步:性能测试脚本开发和执行:脚本制作,调试和验证脚本
性能测试脚本开发和执行需要借助工具来实现,性能测试工具目前市场主流的有:
Jmeter 开源免费,学习资料比较多,java开发,跨平台【win mac Linux都可以用】,推荐优先使用。
Loadrunner,需要收费,市场份额相对较少;C语言开发,破解版本<11版本,12版本免费只能使用50用户数,更新很慢。破解版使用有风险。
locust 需要代码基础,用的也比较少;公司自研使用。Python语言自行开发。
我们以最主流的Jmeter工具给大家讲解性能场景设计与执行,常见的测试模型有:
1)基于并发数模型:线程数梯度增加,压出系统能承受的最大并发用户是
2)基于TPS压测模型:目标一般是为了压出系统最大的TPS,所以会采取平缓增加TPS的模式。
这里的RPS可以等同于TPS,以下图就是5分钟内TPS从1-20,下个5分钟20-50,下个5分钟50-100,最后加到300后,持续600s,如此设计平缓递增。
第五步:性能测试结果分析和调优
性能测试最重要的部分其实就是结果分析和调优。在性能测试过程中对各种数据进行监控与收集,包括被测项目的监控(服务 + 服务器),硬件资源监控+项目服务监控等。通过对测试结果与监控数据综合分析,进行问题定位、分析、调优。
问题分析和调优的基本步骤主要可以按照如下顺序进行:
1、由外及内: 检查RT>检查tps>检查负载机资源情况>检查服务器资源情况>检查 中间件、数据库配置>中间件、数据库耗时分析
2、由表及里:自身问题>服务器硬件瓶颈 > 网络瓶颈 > 服务器os瓶颈> 应用瓶颈
自身问题:优先找自己的问题,因为可能脚本,客户端端口不够、网络不好等问题。
服务器硬件瓶颈:CPU 内存 磁盘等
服务器os瓶颈:参数配置、数据库、web服务器
应用瓶颈:sql语句、数据库设计、业务逻辑、算法
调优后再验证测试,检查问题是否已经解决。
性能测试通过标准& 验收标准:
第六步:性能问题跟踪与报告
当以上的步骤都做完后,就可以开始整理编写性能测试报告。
性能测试报告要素:
1、背景 :为什么要做压测的目的。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数软件测试工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
以添加V获取:vip1024b (备注软件测试)**
[外链图片转存中…(img-9HmUtj12-1713007129797)]
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!