目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
1、系统吞度量要素
一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。
系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间
QPS(TPS):每秒钟request/事务 数量
并发数: 系统同时处理的request/事务数
响应时间: 一般取平均响应时间
(很多人经常会把并发数和TPS理解混淆)
理解了上面三个要素的意义之后,就能推算出它们之间的关系:
QPS(TPS)= 并发数/平均响应时间 或者 并发数 = QPS*平均响应时间
举个例子:
银行窗口业务,早上8点上班,窗口数量为10个窗口,平均每个人办理业务的时候为5分钟。可以用下面的方法计算。
并发数=10个窗口;
平均响应时间为 = 5*60 秒
;
QPS = 10/(5*60)
事务/秒;
一个系统吞吐量通常由QPS(TPS)、并发数两个因素决定,每套系统这两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达到系统最高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降,原因是系统超负荷工作,上下文切换、内存等等其它消耗导致系统性能下降。
决定系统响应时间要素
做项目要排计划,可以多人同时并发做多项任务,也可以一个人或者多个人串行工作,始终会有一条关键路径,这条路径就是项目的工期。
系统一次调用的响应时间跟项目计划一样,也有一条关键路径,这个关键路径是就是系统影响时间;
关键路径是有CPU运算、IO、外部系统响应等等组成。
2、如何提高系统QPS?
由前面的公式:QPS(TPS)= 并发数/平均响应时间 可以看出,要提高qps,我们必须做2个方面努力
增加并发数:
比如增加tomcat并发的线程数,开喝服务器性能匹配的线程数,可以更多满足服务请求。
增加数据库的连接数,预建立合适数量的TCP连接数;
后端服务尽量无状态话,可以更好支持横向扩容,满足更大流量要求;
调用链路上的各个系统和服务尽量不要单点,要从头到尾都是能力对等的,不能让其中某一点成为瓶颈。
RPC调用的尽量使用线程池,预先建立合适的连接数。
减少平均响应时间:
请求尽量越前结束,越好,这样压力就不要穿透到后面的系统上,可以在各个层上加上缓存
流量消峰。放行适当的流量,处理不了的请求直接返回错误或者其他提示。和水坝道理很类似
减少调用链;
优化程序;
减少网络开销,适当使用长连接;
优化数据库,建立索引;
最后,要优化的地方还有很多,上面只是列举常见一些要注意的地方,优化的指导原则就是:增加并发数 和减少平均响应时间
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
只要你保持不懈的努力,即使路途再坎坷,你也能闯过困难,迈向成功。相信自己的潜力,展现勇气与毅力,每一步都是成长的契机,踏上坚定的道路,收获辉煌的未来。
只有不断追求进步,才能在困境中找到机遇;只有坚韧不拔的意志,才能创造辉煌的未来;奋斗者永远无畏挑战,勇往直前,终将翻过所有山川。
只有拼尽全力,才能看见坚持的光芒;只有奋力向前,才能抵达梦想的彼岸;只有不服输,才能书写人生的辉煌。相信自己,努力奋斗,未来将会因你而改变!