性能测试又称多用户并发性能测试。
1、压力测试:压力测试的目标是测试在一定的负载下系统长时间运行的稳定性,尤其关注大业务量情况下长时间运行系统性能的变化(例如是否反应变慢、是否会内存泄漏导致系统逐渐崩溃、是否能恢复);压力测试是测试系统的限制和故障恢复能力,它包括两种情况:
a.稳定性压力测试:在选定的压力值下,长时间持续运行。通过这类压力测试,可以考察各项性能指标是否在指定范围内,有无内存泄漏、有无功能性故障等;
b.破坏性压力测试:在稳定性压力测试中可能会出现一些问题,如系统性能明显降低,但很难暴露出其真实的原因。通过破坏性不断加压的手段,往往能快速造成系统的崩溃或让问题明显的暴露出来;
2、负载测试的目标是测试在一定负载情况下系统性能(不关注稳定性,也就是说不关注长时间运行,只是得到不同负载下相关性能指标即可);实际中我们常从比较小的负载开始,逐渐增加模拟用户的数量(增加负载), 观察不同负载下应用程序响应时间、所耗资源,直到超时或关键资源耗尽,这就是所说的负载测试,它是测试系统的不同负载情况下的性能指标。
3、并发测试:主要指当测试多用户并发访问同一个应用、模块、数据时是否产生隐藏的并发问题,如内存泄漏、线程锁、资源争用问题,几乎所有的性能测试都会涉及并发测试。
4、强度测试:强度测试检查程序对异常情况的抵抗能力;是检查系统在极限状态下运行的时候性能下降的幅度是否在允许的范围内。强度测试总是迫使系统在异常的资源配置下运行。
例如,①当中断的正常频率为每秒一至两个时,运行每秒产生十个中断的测试用例;②定量地增长数据输入率,检查输入子功能的反映能力;③运行需要最大存储空间(或其他资源)的测试用例;④运行可能导致虚存操作系统崩溃或磁盘数据剧烈抖动的测试用例,等等。
5、容量测试:容量测试的目的是通过测试预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限状态下没有出现任何软件故障或还能保持主要功能正常运行。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。
容量还可以看作系统性能指标中一个特定环境下的一个特定性能指标,即设定的界限或极限值。
对于性能测试,我们必须要清晰地理解这些概念,这是我这段时间回顾起却又有些模糊,所以总结了一处,执行性能测试,性能瓶颈分析路径: 服务器硬件瓶颈-〉网络瓶颈(对局域网,可以不考虑)-〉服务器操作系统瓶颈(参数配置)-〉中间件瓶颈(参数配置,数据库,web服务器等)-〉应用瓶颈(SQL语句、数据库设计、业务逻辑、算法等)
Web系统的响应时间:是指从客户端发起一个请求开始,到客户端收到从服务器返回的响应结束,这个过程所耗费的时间。
即: 响应时间=网络响应时间+应用程序响应时间