首先声明:本人并非专业测试人员,而是在项目开发过程当中正好接触到了压力测试的环节,特此对压力测试做了一些简单的了解。本文围绕压力测试相关的一些问题作出相应的整理,希望可以帮助大家快速简单的了解一下压力测试相关的问题。其中很多问题的一些见解是从一些前辈的博客当中摘抄过来的,这里就不一个一个的贴博客地址了。
什么是压测?
压力测试是通过不断向被测系统施加“压力”,测试系统在压力情况下的性能表现,考察当前软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在,也就是我们可以模拟巨大的工作负荷以查看应用程序在峰值使用情况下如何执行操作。
为什么要进行压力测试?
(1)通过压测可以尽可能的找出更多隐藏的代码错误,Web服务处于分布式计算的核心位置,它们之间的交互通常很难测试。分布式开发、大型的开发者团队以及对代码日益组件化的期望都有可能使Web服务的开发变得越来越容易隐藏错误。这些类型的错误极难检测出来。压力测试是检测这类代码错误的一种有效方法,但是只有在压力系统设计得比较有效的情况下才能发挥作用。
(2)考察当前软硬件环境下系统所能承受的最大服务并帮助找出系统瓶颈问题所在。
(3)保证系统在线上的处理能力和稳定性位置在标准范围内,做到心中有数。
压力测试中两种常见的错误类型:内存泄漏,并发与同步
。
有效的压力测试系统将应用以下这些关键条件:重复,并发,量级,随机变化
。
应在什么时候进行压力测试?
(1)接口开发完毕之后
接口开发完成之后就可以进行第一次压力测试。这一次压力测试可以简单压一下, 在本机进行就可以。压力测试的目的是检查代码在高并发下是否会报错(同步、事务相关问题)。另外,编译型语言要观察是否存在内存泄漏。 因为本机性能有限,一般来说按照100、200、300、500进程数进行压力测试,压到500如果没有报错就可以进行疲劳测试,观察内存占用。
(2)项目上线之前
压力测试场景
(1)单场景,压一个接口的
(