性能测试:是指在给定条件基准的前提下能达到的运行成都,测试软件在系统中的运行性能,度量系统与预定义目标的差距。包括:负载测试、压力测试。
负载测试:模拟系统正常运行性能,通过不断加载压力,观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(如CPU、内存、磁盘、网络)等,以检验系统的行为和特性,以发现系统可能存在的性能瓶颈、内存泄漏等问题。负载测试更多地体现了一种测试方法。比如实际中我们说从比较小的负载开始,逐渐增加模拟用户的数量,直到应用程序响应时间超时,就是说的负载测试。
压力测试(强度测试):压力测试是在强负载(大数据量、大并发量用户等)下的测试,查看应用系统在峰值使用情况下操作行为,从而有效地发现系统的某项功能隐患、系统是否具有良好的容错能力和可恢复能力。压力测试分为高负载下的长时间(12小时以上)的稳定性压力测试和极限负载情况下导致系统崩溃的破坏性压力测试。
负载测试与压力测试的区别:
负载测试:通常描述一种特定类型的压力测试,增加用户数量以对应用程序进行压力测试。比如实际中我们说从比较小的负载开始,逐渐增加模拟用户的数量,直到应用程序响应时间超时。
压力测试:压力测试考察当前软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在。它包括两种情况:1、稳定性压力测试:在选定的压力值下(一般是最大负载的80%),长时间持续运行(8H以上)。可以考察各项性能指标是否在指定范围内有无内存泄漏、有无功能性故障等。2、破坏性压力测试:通过破坏性不断加压的手段,往往能快速造成系统的崩溃或让问题明显的暴露出来。
负载测试是测试软件本身最大所能承受的性能测试,压力测试就是一种破坏性的性能测试,检查系统是否稳定或者什么时候崩溃。
性能测试的目的:
1、是否满足预期;
2、以结果判断;
3、潜在昔日性能问题;
4、找出瓶颈加以解决;
5、性能调优;
6、发现功能缺陷;
性能测试应用领域:1、系统的性能瓶颈定位;
2、算法方面的缺陷;
3、验收测试;
4、产品容量规划;
5、产品评估/选型;
性能测试常见术语:
并发用户:单位时间内,有多少用户与系统交互操作(发起请求);
在线用户:某段时间内访问系统的用户数,不一定有请求;
响应时间:系统处理事务的响应时间的平均值;
吞吐量:一次性能测试过程中网络上传输的数据量的总和;
吞吐率:测试过程中每秒网络传输数量;
事务:性能测试中,一个完整的操作过程,比如登录操作;
事务成功率:定义事务的一个指标,一般要求成功率>99.9%;
TPS:每秒完成的事务数;
点击率:每秒点击多少次;
资源利用率:CPU、内存、磁盘、网络的使用率
性能测试策略:
1、性能测试用例模型:A、预期性能指标;
B、用户并发性能;
C、疲劳强度与大数据量测试;
D、网络性能测试;
E、服务器性能测试;
2、模型的使用方法:A、测试策略遵从最低成本原则;
B、策略为中心原则;
C、适当裁剪原则;
D、完善模型原则;
E、模具具体化原则;
性能测试在软件测试的周期位置:
性能测试是基于单元测试、集成测试、功能测试等都已经基本完成的系统相对稳定后,站在用户的角度去测试整个系统。
性能测试策略:1、负责测试;
2、压力测试;
3、并发测试;
4、基准测试;
5、稳定性测试;
6、可恢复性测试;
系统调优步骤:1、确定问题;2、确定原因;3、确定调整目标和解决方案;4、测试解决方案;5、分析调整结果;
性能测试步骤:1、测试需求分析;2、测试设计;3、测试脚本开发;4、测试实施;5、测试结果分析;
常见性能自动化测试工具: