测试做久了就会知道,性能测试是测试人员的终极梦想,这是为什么呢?工资高呀。因为功能测试给你的感觉是太机械了,掌握了性能测试,你不再只是会点点点。
性能测试应该怎么学呢?
一、 什么是软件性能
定义:软件的性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,而是在完成该功能时展示出来的及时性。
由定义可知性能关注的是软件的非功能特性,所以一般来说性能测试介入的时机是在功能测试完成之后。另外,由定义中的及时性可知性能也是一种指标,可以用时间或其它指标来衡量,通常我们会使用某些工具或手段来检测软件的某些指标是否达到了要求,这就是性能测试。
性能测试定义:
指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
二、不同群体眼中的性能
1)用户眼中的性能:响应速度,稳定
2)开发眼中的性能:架构,内存,线程
3)系统管理员眼中的性能:资源利用率,可扩展
4)测试眼中的性能究竟是什么样的
测试人员通常是做为软件质量控制的一个角色,不仅仅是找bug,需要对整个软件的质量负责,性能也属于质量的一部分,因此测试人员眼中的性能应该是全面的,考虑的东西也需要全面:
1、测试人员需要考虑全面的性能,包括用户、开发、管理员等各个视角的性能。
2、测试人员在做性能测试时除开要关注表面的现象如响应时间,也需要关注本质,比如用户看不到的服务器资料利用率,架构设计是否合理?代码是否合理等言方方面面。
三、性能测试类型
基准测试:在给系统施加较低压力时,查看系统的运行状况并记录相关数做为基础参考。
负载测试:是指对系统不断地增加压力或增加一定压力下的持续时间,直到系统的某项或多项性能指标达到安全临界值,例如某种资源已经达到饱和状态等 。
压力测试:压力测试是评估系统处于或超过预期负载时系统的运行情况,关注点在于系统在峰值负载或超出最大载荷情况下的处理能力。
稳定性测试:在给系统加载一定业务压力的情况下,使系统运行一段时间,以此检测系统是否稳定。
并发测试:测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题。
四、做好性能测试需要掌握
- 掌握一门编程语言(Java, Python)
- 掌握计算机原理和操作系统知识
- 良好的网络基础
- 掌握数据库知识
- 中间件(apache, tomcat)
- 常用抓包工具
- 性能测试工具(LoadRunner, Jmeter)
网友评论