目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
响应时间VS吞吐量
通常来说,响应时间和吞吐量承反比例(响应时间越长吞吐量越低)。
①响应时间和吞吐量并没有直接的关系(但是有间接关系);
②性能优化是需要多维度去衡量和优化的领域;
③一般来说,性能优化的目标是:在尽量保持和降低响应时间的情况下,不断提高吞吐量,提高流量高峰时间的系统服务可用性(大多数情况,而非全部);
④响应时间、吞吐量、可用性等因素有时候存在矛盾,需要综合考虑业务情况、系统模块的依赖关系、处理方式(单线程/多线程/负载均衡)等因素,做到合理取舍;
描述响应时间的方式
尽量用百分比的方式而非平均值来描述响应时间!
用户感知到的是差异变化,而非平均!
性能需求指标
性能需求指标应该是明确描述的、可量化的指标需求。
性能剖析思路
找到最慢的几个任务(消耗时间最多),分析它们是否有对应关系,每个任务的时间占比,得到一个明确的描述:每个任务运行消耗了多少时间!
阿姆达尔定律
系统对某一部件采用更快执行方式所能获得的系统性能提升程度,取决于这种执行方式被使用的频率,或所占总执行时间的比例。
性能优化排序
优先占用资源最多或消耗时间最多的任务,但要考虑优化的成本、收益、风险(没有最好的方案,只有最合适的方案)。
偏斜度
表示在一组响应时间值中的非一致性程度(比如下面两组值的对比)
①表现值和实际值
②平均响应时间和95%响应时间
最小化风险
确认问题根节点,不要让局部影响到全局。
提升效率
性能优化优先原则:首先专注于业务上最需要优先修正的程序,而不是从全局调优来改善性能。
负载
负载的一个直观测量指标:使用率(反映了资源按时间分片的使用情况);
负载会在并发任务执行时引发资源竞争;
引起负载上升系统变慢的2个原因:队列延迟和相关性延迟(资源竞争,等待,死锁等)
响应时间
特点:在具备完美扩展性的前提下:RT=servertime(任务执行时间)+querywaittime(队列等待时间)
拐点
响应时间和吞吐量之间的某个最优负载平衡点的资源使用率的值,称为拐点。
计算公式:响应时间/资源利用率=所得结果最小的值
拐点相关性
在完美扩展性前提下,只要系统的平均负载超过拐点,那么系统依然会面临性能瓶颈,实际生产中的拐点比上图的拐点数值更小。
拐点主要有以下几个特点:
①系统中的每一项资源都存在拐点;
②系统的拐点都≤上图中给出的值,系统的扩展完美型越差,拐点越小;
③对于请求随机到达的系统,如果资源负载持续超过拐点,那么将遇到性能瓶颈;
随机到达
随机任务请求往往会聚集等待并引发短暂的资源使用率上升,需要足够的容量来消费。这种情况下可能会引发队列延迟并导致响应时间的明显波动。(等待时间参考:2/5/8原则)
容量规划
容量规划特点:
①某项资源的容量就是高峰期可以轻松运行任务而资源使用率不会超过拐点的值;
②保持资源利用率低于拐点,系统表现则基本不会低于我们的期望值;
③如果系统中某项资源超过它的拐点,就会遇到性能瓶颈;
④遇到容量瓶颈,解决方式是:重新配置负载分配(减少负载OR增加容量);
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
今天的汗水是未来的收获;坚持不懈,终将成功;只有拼尽全力,才能创造出更好的自己;勇往直前,路会为你铺开;不断挑战自我,才能发现更大的可能性;不怕失败,要敢于迎接挑战。
生命中最美好的东西并不是你所得到的,而是你为之奋斗过的。每一次拼搏都会让你变得更加坚强,更加勇敢,更加自信。即使前路艰难,也要保持信念,坚定前行!
路漫漫其修远兮,吾将上下而求索。不断努力,才能成就大器;永不放弃,方能赢得未来。一步一个脚印,踏实向前,勇往直前,不忘初心,砥砺前行。你的付出终将得到回报,加油!