吐血整理,性能测试-设计场景和如何做性能测试,一篇打通...

张开发
2026/4/10 10:21:01 15 分钟阅读

分享文章

吐血整理,性能测试-设计场景和如何做性能测试,一篇打通...
目录导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结尾部小惊喜前言什么是性能测试用工具模拟实际并发场景发现系统问题使系统上线后在接近的用户场景下不死。具体解释工程解释性能测试是针对系统的性能指标建⽴性能测试模型制定性能测试⽅案制定监控策略在场景条件之下执⾏性能场景分析判断性能瓶颈并调优最终得出性能结果来评估系统的性能指标是否满⾜既定值。你在工作中经常做得三件事也叫性能测试的价值分类性能验证针对给定的指标只做性能验证性能测试针对给定的系统做全面的性能测试可以得到系统的最大容量但不涉及到调优 –-旧系统保证系统不衰减性能测试性能调优针对给定的系统做全面的性能测试同时将系统调整到“最优”状态意义验证系统上线之后是否可以稳定运行 第一层的含义给出开发和运维人员提出线上的配置建议 第二层的含义在满足业务要求的前提下可以节省资源 第三层的含义让你压几百你就压压了500个没有崩溃这种方法叫性能验证 一般性能都这么测试10000 并发正常,40000万开始增加50000并发满了 最大6万就崩了 一般的性能测试一边压测一边调整各方面配置都很优秀这就是性能调优的过程一般在公司你就做第一步第二步常用性能测试的性能指标RT 响应时间 最重要指标点一下页面按钮到页面完成出来这就叫响应时间包含前端点击点击之后给接口发一个请求页面返回的内容渲染在页面如果只看发到服务器的服务器的处理时间也叫rt根据具体事件定义HPS 每秒点击数 f12加载好多页面点击一次请求一次没啥价值tps 每秒处理事务处什么是事务刚才的请求返回叫事务可以站在服务器角度收到给响应当一个事务可行,数据库接到一个查询发出去事务?也可以 qps MySQL 每秒收到的请求把你的tps定义到数据库中就是qbs 你调用接口只发一个数据库查询可能不是1可能是10当你把数据库查询当tps就是你单测试数据库那就是tps或者以数据库收到查询为主也等于tpscps 请求页面返回的pv 用户访问量 一天访问10000次 最大 都是1s 10000 最小 10000/24均分 跟性能没关系帮助你算并发有时间时间段访问高。按公司来比如十分钟二百次200/10*60 这个接近最大峰值 提供的数据越详细我的设计就越细uv 独立访问者注意pv,uv这两个是用来帮助你算tps的 只给你每天的用户访问10000 每秒的tps10000/2460600.115 想要接近真实就要有更详细的数据找到每个时间端访问的最大值 比如今年某个十分钟二百次最多访问200/10*60 这个接近最大峰值 提供的数据越详细我的设计就越细吞吐量 每秒处理的数目吞吐量在jmeter就是tps JMETer报告会带上 吞吐量就等于tps 在Jmeter出错率 error对应的资源使用率总结性能测试只关注四个重要点响应时间rt ,tps每秒处理事务处,错误率对应的资源使用率也叫资源使用范围登录和下单的测试 为什么分别测试要组合一起测试贴近真实用户场景登录接口 测试 单交易压测下单接口 测试登录-下单 测试 混合场景性能测试先做单交易在测试混合场景 首先清除单独业务的响应时间和大体的情况测试前期要在服务器内网压测也就是说你的服务器是11你要在这个网络内找一台机器去压他举例子几个性能测试指标 第一 指标怎么定的要具体算出来第二设计场景验证被测场景是否满足目标tps验证被测场景最大支持的tps找到拐点第一个tps 1s83个 就是开83个线程 持续时间一小时 看tps是否符合第二个就是如果第一个不够的话就加服务器开发该配置然后够的话就继续压看tps最大到多少下降找到拐点同事还要考虑tps的响应时间是否在范围内比如抢火车票一个人测试没问题多个人用的时候会引发问题为什么多个人用会有问题代码的问题有的代码写的死循环一个人写了慢了点多个人使用产生很大cpu死循环占cpu功能测试就是一个人装一个假肢能装上就行性能测试看看他使用的效果是不是好用性能测试是通过自动化的测试工具模拟多种正常 -解析通过工具去模拟性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试两者可以结合进行 这句话不太科学通过负载测试确定在各种工作负载下系统的性能目标是测试当负载逐渐增加时系统各项性能指标的变化情况。 负载不断的增加压力压力测试是通过确定一个系统的瓶颈或者不能接受的性能点来获得系统能提供的最大服务级别的测试。找最大容量进程和线程线程是通过cpu去调度的每个线程就是一个用户响应时间不是你可以控制的性能指标设计的方法第一种 老系统无历史数据/日志监控/用户分析参考拍脑袋压500 压1000 做了也没有意义其实也有就是性能验证了根据竞品参考老系统你的新系统根据老系统参考测试拿到tps第二种有上游有pv 用户访问量 和uv用户量根据2.8原则来80%的任务产生 在20%的时间内 每个公司业务不一样有的是1946原则第二—根据业务来 如果你拿到一天一万业务量 最好拿到分钟和小时的一天的交易总量就找每小时看不到就用2.81万除以24*3600这样算出来的是100%二八算法8000除以 24*3600*0.2这样比上面强 没有办法情况下二八原则也就是说你每天80%的业务量除以20%的业务量均分到每s 算出tps假定一天是10000访问量不算二百百分之百业务发生在100%时间 tps很小二八算法 1000080% /24606020% 这样算出来的tps肯定比按天算大第三那没给你找个业务一天的uv活跃用户在线数目uv活跃用户数能拿到小时最好拿不到就乘以3%-5%算出来tps 在根据响应时间算出虚拟用户线程模拟用户一千个用户如何模拟根据并法度百分之3%-5%一千个用户就是30到五十个在线总结获取以下场景的 交易数以及各个业务比例分配场景一交易峰值日10-28交易峰值小时场景二交易峰值日10-28每个核心业务的峰值小时场景三登录业务峰值日(10-25) 核心业务峰值小时场景四产品查询业务峰值日(10-26) 核心业务峰值小时场景五优惠码兑换业务峰值日(10-27) 核心业务峰值小时场景六普通交易日(10-31) 交易峰值小时完整版企业级性能测试实战速通Jmeter性能测试到分布式集群压测教程下面是我整理的2026年最全的软件测试工程师学习知识架构体系图一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结尾部小惊喜别让“我不行”成为你的口头禅你的潜力远未被发掘。每一次尝试都在拓展能力的边界每一次突破都在重塑自信的高度。相信自己你能行种一棵树最好的时间是十年前其次是现在。别让“太晚了”成为借口今天就是你余生中最年轻的一天。行动起来让梦想在当下生根发芽

更多文章