**
应用负载压力测试
**
1 概述
系统的负载压力是指系统在某种指定软件、硬件以及网络环境下承受的流量,例如并发用户数、持续运行时间、数据量等,其中并发用户数是负载压力的重要体现。当有大量用户同时使用时,可能会出现功能失效、性能衰减、甚至系统崩溃的现象。
负载压力测试是指在一定约束条件下测试系统所能承受的并发用户量、运行时间、数据量,以确定系统所能承受的最大负载压力。负载压力测试有助于确认被测系统是否能够支持性能需求,以及预期的负载增长等。负载压力测试不只是关注不同负载场景下的响应时间等指标,它也要通过测试来发现在不同负载场景下会出现的。
载压力测试包括并发性测试、疲劳强度测、大数据量测试等内容。
2 测试设计方法
2.1 负载测试
负载测试是通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试。
2.2 压力测试
压力测试是通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,并以此来获得系统能提供的最大服务级别的测试。通俗地讲,压力测试是为了发现在什么条件下系统的性能变得不可接受。压力测试是一种特定类型的负载测试。例如,访问一个页面的响应时间规定为不超过1秒,负载测试就是测试在响应时间为1秒时,系统所能承受的最大并发访问用户的数量,而压力测试就是测试系统在多大的并发访问用户数量下,响应时间不可接受,例如超过1分钟(定义为失效状态)。
2.3 并发性能测试
并发性能测试的过程,是一个负载测试和压力测试的过程。即逐渐增加并发用户数负载,直到系统的瓶颈或者不能接收的性能点,通过综合分析交易执行指标、资源监控指标等来确定系统并发性能的过程。并发性能测试是负载压力测试中的重要内容。
一个完整解决方案的角度考虑,并发性能测试概括为以下3类:
1)应用在客户端性能的测试;
2)应用在网络上性能的测试;
3)应用在服务器上性能的测试。
2.4 疲劳强度测试
通常是采用系统稳定运行情况下能够支持的最大并发用户数,或者日常运行用户数,持续执行一段时间业务,保证达到系统疲劳强度需求的业务量,通过综合分析交易执行指标和资源监控指标,来确定系统处理最大工作量强度性能的过程。一般情况下利用疲劳强度测试来模拟系统日常业务操作。
2.5 大数据量测试
大数据量测试分为两类:
1)独立的数据量测试指针对某些系统存储、传输、统计、查询等业务进行大数据量测试。
2)综合数据量测试指和压力性能测试、负载性能测试、疲劳性能测试相结合的综合测试。
3 负载压力测试目的
1)在真实环境下检测系统性能,评估系统性能以及服务等级的满足情况。
2)预见系统负载压力承受力,在应用实际部署之前,评估系统性能。
3)分析系统瓶颈、优化系统。
调优的最终目的是各个指标的调整取得系统的平衡点,也即达到了系统性能的最佳点。负载压力测试将为企业项目的实施提供信心,帮助用户正确地进行容量规划,实现软硬件投资合理化,最终交付高质量的系统,避免项目投产失败,保证用户的投资得到相应的回报。
4 负载压力测试策略
利用商业化测试工具进行测试。比如:LoadRunner、QALoad等开发资源测试工具进行测试。OPenSTA http://portal.opensta.org、
TestMaker http://www.pushtotest.com、Apache JMeter http://jakarta.apache.org/jmeter。
5 产品生命周期中负载压力测试计划
(1)在需求分析中充分关注负载压力性能
(2)从设计中得到负载压力性能指标
(3)开发阶段创建一个负载压力性能测试环境
(4)验收阶段在多等级范围内测试并调优
(5)运行阶段持续监控系统负载压力性能
6 负载压力测试解决方案
6.1 并发性能测试
1)应用在客户端性能的测试:在客户端模拟大量并发用户执行不同业务操作,达到实施负载压力的目的。
2)应用在网络上性能的测试:这部分主要包括两部分内容,一是应用网络故障分析;二是网络应用性能监控。
3)应用在服务器上性能的测试
6.2 疲劳强度测试
疲劳强度测试主要包括日常业务疲劳强度模拟和高峰业务疲劳强度模拟。
6.3 大数据量测试
大数据量测试类型:独立数据量测试和综合数据量测试。
7 负载压力测试指标
1)并发用户数指标
2)交易处理指标:平均事务响应时间、每秒事务数、每秒事务总数、事务摘要、事务性能摘要、事务响应时间(负载下)、事务响应时间(百分比)、事务响应时间(分布)。
3)web请求指标:每秒点击次数、点击次数摘要、吞吐量、吞吐量摘要、HTTP状态代码摘要、每秒HTTP响应数、每秒下载页面数、每秒重试次数、重试次数摘要、连接数、每秒连接数/每秒SSL连接数。
4)web页面组件指标:激活网页细分、页面组件细分、页面组件细分(随时间变化)、页面下载时间细分、页面下载时间细分(随时时间变化)、第一次缓冲细分时间、第一次缓冲时间细分(随时间变化)、已下载组件大小。
来源:https://blog.csdn.net/weixin_42685900/article/details/100774772