目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
1、什么是性能测试?
指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
功能测试的时候关注的是1个人的操作,性能测试关注的是多个人。
2、性能测试什么时候做?
接口测试是最先做,性能测试是最后做。
性能测试是基于所有功能都测试完毕并且修复完成,基本不改变,正常测试流程已经全部走完,在上线前的两三天做性能测试,性能测试通过则可以上线。
3、不同群体眼中的性能
1)用户的视角
响应时间(还要让我等多久?需要加载老半天才出现页面?)
确定性(为什么总是失败?闪退?无响应?)
2)开发视角
架构设计是否合理?——架构设计
数据库设计是否合理?——数据库设计
代码是否存在性能问题?——代码
是否有不合理的内存使用?——代码
是否有不合理的线程同步操作?——代码
是否有不合理的资源竞争?——代码
代码算法是否还能进一步提升?——代码
3)系统管理员(运维)视角
服务器资源使用合理吗?——资源利用率
数据库使用合理吗?——资源利用率
系统是否实现扩展?——可扩展性(比如:服务器动态扩展)
最多支撑多少用户访问?——系统容量
最大业务处理量?——系统容量
系统有哪些潜在的瓶颈?——可扩展性
更换哪些设备,添加哪些机器可以提高系统性能?——可扩展性
7×24小时连续不间断业务访问?——稳定性
4)测试眼中的性能
官方回答:
测试人员通常是作为软件质量控制的一个角色,不仅仅是找BUG,更需要对整个软件的质量负责,性能也属于质量的一部分,因此测试人员眼中的性能应该是全面的,考虑的东西也需要全面。
测试人员需要考虑全面的性能,包括用户、开发、运维等各个视角的性能。
测试人员在做性能测试时除开要关注表面的现象。
比如:响应时间,也需要关注本质。
比如:用户看不到的服务器资源利用率,架构设计是否合理,代码是否合理等方面。
实际测试:
将开发视角看成一块,运维视角也看成一块,站在用户的角度,模拟用户操作。
如果达标就通过,上线。
如果不达标,就要判断是开发的问题还是运维的问题。
监控系统的物理资源,比如:CPU占用100%(一般是85%以内,70%、60%、50%都ok),就是运维问题,或者是内存占满,带宽打满。
运维已经调过物理资源,CPU、内存、带宽等也都达标,测试发现还有性能问题,那就是开发问题。就要指派给开发去处理。
性能测试的指标?是谁定的?
产品经理和项目经理制定。
4、性能测试的场景维度和类型
1)基准测试
在给系统施加较低压力时,查看系统的运行状况并记录相关数据作为基础参考。
比如:一个系统的性能要求是满足100个人使用,我们就会取10-20个人去做测试就会得到一组数据,这个数就作为基准测试的基础参考值
2)负载测试
是指对系统不断地增加压力或增加一定压力下的持续时间,直到系统的某项或多项性能指标达到安全临界值,例如:某种资源已经达到饱和状态。
正常是由小往大增加,需要注意的点是需要往安全的临界值去加,而不是往超负荷的去加,也就是说性能是走上坡路的,寻找最佳性能的那个点。
如果加到发现性能下降,就需要往回退,取更小的差值,比如60直接加到70的时候出现性能指标下降,就需要取65、66、67等慢慢尝试,找到系统最优点。
3)压力测试
压力测试是评估系统处于或超过预期负载时系统的运行情况,关注点在于系统在峰值负载或超出最大载荷情况下的处理能力。
70往上加,观察软件是如何处理这种情况:
①系统崩溃
②所有人都无法访问
③一部分人可以访问,一部分人无法访问,需要错峰访问(比如:考试系统查分)
4)稳定性测试
在给系统加载一定业务压力(40%-60%)的情况下,使系统运行一段时间,以此检测系统是否稳定。
5)并发测试
测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题。
5、性能测试指标确立及分析
1)响应时间(RT——Response-time)
定义:从用户发送一个请求到用户接受到服务器返回的响应数据的这段时间就是响应时间。
关键路径:http请求经过网络发送到web服务器进行处理,如果需要操作DB,再由网络转发到数据库进行处理,然后返回值给web服务器,web服务器最终把结果数据通过网络返回给客户端。
2)吞吐量
定义:单位时间内系统处理的客户端请求的数量。(判断系统处理能力的一个指标)
计算单位:一般使用 请求数/秒 作为吞吐量的单位,可以使用 页面数/秒 表示。另外,从业务角度来说也可以使用 访问人数/天 或 页面访问量/天 作为单位。
计算方法:throughput = (number of requests)/(total time)
3)并发数
并发用户数:某一物理时刻同时向系统提交请求的用户数,提交的请求可能是同一个场景或功能,也可以是不同场景或功能。
在线用户数:某段时间内访问系统的用户数,这些用户并不一定同时向系统提交请求。(日活——每日活跃用户数)
系统用户数:系统注册的总用户数据。
三者之间的关系:系统用户数 >= 在线用户数 >= 并发用户数
等等…
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
人生最美丽的风景,是坚持不懈的努力;奋斗的道路上,充满荆棘与挑战,但只要心怀信念与激情,你将开创属于自己的辉煌之路。
生活中最大的幸运是,我们可以选择自己的路,不断地追逐梦想和抓住机会,即使失败和困境接踵而至,仍然要坚持勇往直前,不断前行。
世界是属于敢于拼搏的人,不经历风雨,怎能见彩虹。奋斗不仅是为了实现梦想,更是磨炼意志,成就更强大的自己。相信自己,努力奋斗,未来必将绽放辉煌。