一、负载测试加载方式
1.1一次加载
一次性加载x数量用户,预定时间段内持续运行。
主要测试瞬时高峰期压力。
1.2递增或递减加载
用户规律逐渐加载,每几秒增加x用户,交错上升。
主要用于发现性能拐点,确定负载基线,响应时间超出阈值,错误超出阈值。
1.3高低突变加载
某个时间用户数量很大,突然降低,一段时间,又突然加到很高,往复几次。
主要用于发现资源释放,内存泄漏等问题。
1.4随机加载方式
随机算法自动生成某个数量范围内变化,动态负载,模拟实际情况。
主要用于模拟较长时间高位运行过程,非瞬时高峰期。
二、性能测试分类
1、性能测试
1.1目的
为了获取性能指标,提供系统性能指标方面数据,事先定义的性能指标明确,不符合时需要进行分析调优。
1.2性能需求
问题:
1、产品需求文档未明确说明性能指标,项目经理未提出性能测试需求
2、性能需求指标不够明确
确定性能需求:
1、获取竞品的处理能力,自己产品性能指标预期考虑比对手高10%-30%
2、用户体验遵循2-5-10,小于2s响应-较快,2-5s响应-快,5-10s响应-慢,大于10s响应-较慢
3、相关国家标准或行业标准定义
4、研发人员进行评估
5、没有参考产品和相关数据时,首先确定基本的性能指标,进行性能基准测试,测试度量具体指标作为基准,指导后续版本。
清晰明确的指标数据描述包含时间【客户端连接,系统响应,业务处理时间等】,容量【正常工作时负载量】,数据吞吐量,系统资源占有率【正常运行时】。
产品应给出的范本参考:
数量+业务+比例要求
30个在线用户按正常操作速度访问网上购物系统的下定单功能,下定单交易的成功率是100%,而且90%的下订单请求响应时间不大于5秒;当并发在线用户数达到100个时,下定单交易的成功率大于98%,其中,90%的在线用户的请求响应时间不大于用户的最大容忍时间30秒
1.3类型
1.3.1性能验证测试
针对系统已定义好的性能指标,进行验证是否满足需求。
加载方式:
一次加载和逐步加载,两种方式的性能数据都要记录下来,供分析。
1.3.2性能基准测试
在系统标配下,获得性能指标数据,作为基准线,指导后续版本,控制变量法【控制内存数,cpu数目】进行基准测试,单一变量进行逐步递增测试,记录环境数据和结果。
1.3.3容量测试
应用程序使用达到峰值,某些性能指标突变,性能明显开始恶化,错误率激增,峰值出现引起系统性能产生拐点,峰值所对应的某些输入参数就是想获得的系统最大容量。
确定软件系统承载能力,提供服务能力,确定在给定时间内系统能持续处理的最大负载和工作量。
加载方式:
先逐步加载获得基本容量值和范围,再一次加载决定实际可支持容量值
完成标准:
不能简单描述在某一标准配置服务器上运行某软件容量多少,应选用不同加载策略反映不同状态下的容量,分成多种情况,提供相应的容量数据参考。
1.3.4性能规划测试
多种特定环境下,获得不同配置系统的性能指标,来最终决定系统部署时采用的软硬件配置,系统规划的配置数据依赖于性能规划测试。如根据用户数量或数据负载决定服务器选型和数量。
2、压力测试
2.1目的
强负载情况对稳定性进行测试,查看应用系统在瞬间使用峰值情况下行为表现,发现系统稳定性隐患和系统在负载峰值条件下功能隐患,确认系统是否具有良好的容错能力和可恢复能力。
2.2类型
2.2.1稳定性压力测试
系统处于峰值压力下,高负载【如CPU使用率75%以上,内存使用率70%以上】运行3*24小时
质量标准:
各项指标在指定范围内,无内存泄漏,无系统崩溃,无功能性故障。
2.2.2破坏性压力测试
破坏性的极限负载情况下导致系统崩溃的测试,不断加载造成系统崩溃,暴露问题,同时测试系统能否恢复,恢复时间
2.2.3渗入测试
系统处于峰值压力下,高负载【如CPU使用率75%以上,内存使用率70%以上】运行超长时间7*24,30*24,系统各资源使用以及系统响应无明显的变化和大波动,检查系统健壮性
2.2.4峰谷测试
高峰负载,高低突变加载方式进行,数据对比分析第二次高峰和第一次高峰性能指标,发现差异和问题。
由破坏性压测得到的最大负载值,可能远超过系统实际所承受峰值。
系统高峰峰值按设计要求或经验合理估算:
1、已知某短时间用户峰值x个,则预测压力值为1.5x-2x
2、已知产品说明书最大设计容量x,则预测压力值(x+20%x)-(x+30%x)
3、 需要考虑到每个用户实际操作产生的事务处理和数据量。