||
1、压力测试(Stress Testing):考研一个系统的抗压能力,在当前比较大的压力下,它能否承受得住,压力测试的目的是为了测试Web应用的稳定性。
压力测试方法:具体操作过程是通过对系统施加负荷(模拟用户对Web应用的访问等),使系统的资源占用保持在一个事先约定的水平,来检验此时系统的表现,测试的重点在于系统对于用户的响应时间变化,系统是否出现错误甚至崩溃等。
2、负载测试(Load Testing):通过在被测系统上不断的增加负荷,直到事先设定的性能指标(比如响应时间),变为不可接受或系统的某类资源使用已经达到饱和状态。
负载测试方法:实际是一个不断加压,直到找到系统不可用临界点的过程,形象的说,哪一点正是“强弩之末”。
负载测试特点:
1)主要目的在于找到系统处理能力的极限,为系统进一步优化做参考。另外这种测试也可以用来比较不同的优化方法对于性能极限的提升,因此也可以称之为可扩展性测试(Scalability Testing)。
3、并发测试(Concurrency Testing):通过模拟很多用户在同一时刻访问系统或对系统的一个功能进行操作,来测试系统的性能,从中发现问题。
并发测试所关注的性能问题就是:系统中内存泄漏,线程控制(锁的问题)和资源争用。
4、配置测试(Configuration Testing):通过对被测系统所处的软、硬件环境进行设置上的调整,来了解其对性能影响的程度,并根据结果发现环境的最优配置组合。这个测试方法主要用于性能的优化,一般用于Web应用正式投入使用前夕和运行当中。
5、耐久性测试(Endurance Testing):又叫浸泡测试(Soak Testing),具体方法是令被测试的软件系统,web应用在大负荷条件下长时间运行,从中发现问题。从这个定义来看,被测软件系统或者web应用长时间处于测试状态下,用“浸泡”来描述是很恰当的。
耐久性测试所能发现的问题都和被测系统运行时间变长后,一些资源无法释放,导致系统响应时间慢慢变长有关:
a、严重的内存泄漏:导致系统内存慢慢不够使用
b、数据库链接、数据库游标、应用服务器资源登没有适时释放、导致系统变慢
c、悲催系统代码中数据结构不甚健壮或合理,在长时间运行后,对其的增加、删除、修改、查询等速度出现问题。
耐久度测试需要至少关注以下一些指标:CPU使用率、可用内存、内存使用百分比等。
【耐久度测试与其他测试的区别】
耐久度测试主要是考虑的时时间对于系统或者Web应用的影响,因此,它测试的时间要比其他方法,如性能、压力、负载等测试要长得多。另外,它关注的时系统在一个渐进的资源消耗过程中的表现,与压力测试关注一个固定指标下(可以看作一个时间点)系统的表现,负载测试关注最终的那个最大负载(也可以看作一个时间点)、并发测试关注并发操作发生时系统的表现(也可以看作一个时间点)都不同。