性能测试方法
1、验收性能测试
模拟生产上线业务环境,测试是否满足性能需求
特点:
确定用户的环境
用户需求的性能指标
执行、分析结果
验收性质
测试结果要有客观性
2、负载测试
主要考察软件系统在既定负载下的性能表现,其中既定负载一般是指客户需求的负载。
测试指标一般体现在:响应时间、交易容量TPS(或者吞吐量)、并发容量以及资源使用率等。
3、压力测试
为了考察软件系统在极端条件下的表现,我们需要进行压力测试。其中极端条件可以是超负荷的交易量和并发用户数。
这个极端条件可能要远高于用于的性能需求。
压力测试的目的是:系统出现问题后,需要考察系统处理问题的方式。如我们期待软件系统在面临压力的情况下仍然可以保持稳定,处理速度可以稍微慢些,但是系统不能崩溃。
通过压力测试可以让我们识别系统的弱点(或bug)以及了解系统在极限负载下程序将如何运行。
4、并发测试
目的:验证系统的并发处理能力。
手段:和客户端建立大量的并发连接时,通过客户端的响应时间和服务端的性能监测情况来判断系统是否达到了既定的并发能力指标。
5、配置测试
通过对被测系统软硬件环境的调整,了解不同环境对系统性能影响的程度,从而找到系统各项资源的最优分配原则。
6、可靠性测试
目的:测试系统在一定负载下长时间运行是否会发生问题。
原因:软件系统的有些问题并不能一下子就暴露出来,需要时间积累才能达到能够度量的程度。如内存泄露问题需要经过一段时间积累才能慢慢变得显著,在运行初期缺很难检测出来。
7、恢复性测试
目的:验证系统在局部出现故障情况下,能否继续使用。 – 针对这一问题,关键的业务系统都会采用热备份或者负载均衡的方式实现系统的恢复。
性能测试关键指标
1、响应时间
2、并发用户数
平均并发用户数的计算:C = nL/T
其中,C表示平均的并发用户数
n:表示平均每天访问用户数
L:表示一天内用户从登陆到退出的平均时间
T:表示考察时间,即一天内多长时间有用户使用系统
3、吞吐量:单位时间内处理用户请求的数量
4、系统性能计算器
5、思考时间
性能瓶颈定位思路
整体思路:从前到后,从表象到内部
1、首先排查压力机自身的问题,如CPU、内存、网络、脚本
2、监控中间件的访问日志,观察相应时间耗时,出现在哪一个环节。Tomcat、nginx、apache、mysql
3、排查网络问题,监控压力机到后端服务器的网络是否出现瓶颈
4、监控服务端的所有机器(Tomcat、nginx、apache、mysql)的操作负载,CPU、内存、网络、磁盘是否达到瓶颈
5、监控应用服务器日志,查看是否存在ERROR、timeout、等报错
6、监控中间件连接数是否达到上线,比如tomcat、nginx、mysql连接数是否达到上线
7、监控应用程序的线程状态,使用jstack、jvisualvm查看是否有死锁、阻塞等情况
8、监控应用程序的jvm,使用jstat、jamp查看gc情况,是否存在内存泄漏
9、监控耗时比较长的代码方法,使用jprofiler监控应用程序
10、监控数据库,是否存在慢查询,一般数据库CPU高都是因为sql语句效率低
11、监控数据库的执行计划,是否有全表扫描,预计索引不生效的情况
12、检查系统外部依情况,如果外部依赖系统性能差,也会造成本系统性能低
13、对于不好定位的问题,可以考虑采用模块隔离法来确定问题
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
不要害怕前进的路途再漫长,只因脚下有坚定的步伐;不要畏惧人生的风雨再狂暴,只因心中有无尽的勇气。奋斗吧,这世界正等待你展现璀璨的光芒!
不管遇到何等艰难险阻,心中要始终燃烧着激情与勇气;不论前方多么迷茫困顿,永远保持信念与坚定的步伐。奋斗的人生,终将绽放属于自己的辉煌与荣耀!
每一次坚持,都是超越自己的勇敢;每一次努力,都是迈向辉煌的脚步。不停奋斗,才能收获无尽的可能。相信自己的力量,勇往直前,终将书写属于自己的传世之章。