目录
希望能帮助测试、开发盆友更全面理解性能测试,更好的开展性能测试工作~
1、什么是性能测试?
指通过测试工具模拟多种正常、峰值或异常的负载条件,来对系统的各项性能指标进行测试。性能测试包括压力测试、稳定性测试、并发测试等,一般情况下,较常见的性能测试为并发测试和压力测试,也是研发人员口中的狭义的性能测试。
2、性能测试概念分析以便全面理解性能测试
性能测试可通过不同的角度来衡量,如:用户角度、开发角度、系统管理员角度等,由于所在角度不同,每个觉得关注的侧重点也会不尽相同。比如:
- 用户会侧重于关心系统页面响应时间,响应的稳定性,因为用户使用系统直面的就是页面,用户最直观的感受也是:“这个页面为什么总是失败?”、“还要让我等多久?”
- 开发人员会关心系统架构设计、数据库设计、代码层面设计等,因为系统设计直接影响到开发人员编码的效率和心情,更由于开发人员是技术人员,会站在专业角度考量“设计是否合理?”、“是都有不合理的资源竞争?”、“代码算法是否还能进一步提升”等
- 管理人员会关系服务器、数据库等资源利用率,系统的可扩展性,系统容量、系统稳定性等
- 测试人员不仅要找bug,找出系统可能存在的潜在缺陷,好药对整个系统的质量负责,性能属于质量的一部分,所以在测试角度,对系统性能的考量需要是全面的,需要同时包括用户、开发、管理者视角,还需要考虑到一些用户看不到、开发会忽略的性能,如代码逻辑实现的合理性,应用服务资源的利用率等。
3、性能测试基本类型
- 基准测试: 较低压力下系统运行,记录数据做参考
- 负载测试:不断增加压力,或不断增加在一定压力下的持续时间,知道系统某项胡多项指标达到临界安全值
- 压力测试:指评估系统在峰值或超过峰值的运行情况,关注点在峰值负载或超过峰值时系统的处理情况
- 稳定性测试:加一定业务压力的情况下,使系统运行一段时间(如7*24h)监测是否稳定
- 并发测试:测试多个用户同时访问同一个系统、同一个模块或同一张表的数据记录时,是否存在服务崩溃、数据库表死锁等其他性能问题
4、性能测试应用场景
- 测试人员或开发人员对系统能力的验证;
- 管理人员需要规划系统能力时对系统性能的摸底;
- 性能调优;
- 测试人员测试系统探索性能缺陷,如:线程锁、资源竞争、内存消耗等;