web性能测试种类
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Web性能测试包含很多内容,例如负载测试、压力测试、强度测试都属于性能测试的范畴。本节主要探讨在测试工作中,性能测试有哪些常见的种类。在后面第2章的第2.1节中,将会对这些性能测试内容进行整合,提出“web全面性能测试模型”。
在通常的web性能测试工作中,涉及的性能测试种类主要有:压力测试、负载测试、强度测试、并发测试、可靠性测试、配置测试以及狭义范围的性能测试等。这些种类的性能测试或者单独实施,或者结合起来实施。
对于上面这些和性能测试相关的概念,没有必要进行严格的区分,因为它们之间往往互相包含。下面介绍一下各类测试的主要内容和特点。
压力测试:对系统不断施加压力的测试,是通过确定一个系统的瓶颈或者不能接受用户请求的性能点,来获得系统能提供的最大服务级别的测试。例如测试一个web站点在大量的负荷下,系统的事务响应时间何时会变得不可接受或者事务不能正常执行。
压力测试是为了发现在什么条件下应用程序的性能会变得不可接受,主要通过改变应用程序的输入以对应用程序施加越来越大的负载,直到发现应用程序性能下降的拐点。压力测试和负载测试有些类似,但是通常把负载测试描述成一种特定类型的压力测试——例如增加用户数量以对应用程序进行压力测试。
负载测试:通过在被测系统上不断增加压力,直到性能指标达到极限,例如响应时间超过预定指标或者某种资源已经达到饱和状态。这种测试可以找到系统的处理极限,为系统调优提供依据。
强度测试:强度测试主要是为了检查程序对异常情况的抵抗能力。强度测试总是迫使系统在异常的资源配置下运行。例如:
当正常的用户点击率为“1 000次/秒”,运行点击率为“2 000次/秒”的测试用例。
运行需要最大存储空间(或其他资源)的测试用例。
运行可能导致操作系统崩溃或磁盘数据剧烈抖动的测试用例,等等。
强度测试是一种特别重要的测试,对测试系统的稳定性以及系统未来的扩展空间均具有重要的意义。因为在这种异常条件下进行的测试,更容易发现系统是否稳定以及性能方面是否容易扩展。
并发测试:主要指测试多个用户同时访问同一个应用程序、同一个模块或者数据记录时是否存在死锁或者其他性能问题。几乎所有的性能测试都会涉及一些并发测试。
大数据量测试:大数据量测试分为两种。一种是针对某些系统存储、传输、统计查询等业务进行大数据量的测试;另一种是与并发测试相结合的极限状态下的综合数据测试。作为专项的大数据量测试主要针对前者,后者尽量放在并发测试中。
配置测试:主要是通过测试找到系统各项资源的最优分配原则。配置测试是系统调优的重要依据。例如,可以通过不停地调整Oracle的内存参数来进行测试,使之达到一个较好的性能。
可靠性测试:在给系统加载一定业务压力的情况下,使系统运行一段时间,以此检测系统是否稳定。例如,可以施加使CUP资源保持70%~90%使用率的压力,连续对系统加压运行8个小时,然后根据结果分析系统是否稳定。
狭义性能测试:主要用于描述常规的性能测试,通过模拟生产运行的业务压力和使用场景组合来测试系统的性能是否满足生产要求。例如,以实际投产环境来测试,求出最大的吞吐量与最佳响应时间,以保证上线的平稳、安全等。性能测试是一种“正常”的测试,主要是测试正常使用时系统是否满足要求,同时可能为了保留系统的扩展空间而进行一些稍稍超出“正常”范围的测试。