jmeter模拟spike测试(尖峰测试)

概述

尖峰测试(Spike testing)在性能测试中属于压力测试的一个子集。指的是在某一瞬间或者多个频次下用户数和压力陡然增长的场景。html

为了验证咱们的网站在访问用户急剧增长的状况下,或者短期内反复急剧增长工做负载时可否正常工做;以及程序可否从高负荷中恢复并正常工做时经常用到这种测试手法。服务器

Spike在英文中是钉子的意思,或者咱们能够将其称之为冲击测试,反复冲击服务器。并发

 

常见的场景有

12306开始售票时用户急剧增长性能


网站公布高考成绩、录取分数时,用户急剧增长
测试


网站投放商业促销广告和促销活动,如双11和618等活动开始时,用户急剧增长
网站


等等。。。。
spa

 

如今咱们假设有这样一个场景

咱们的网站正在平稳运行的时候,忽然有一波1000用户同时访问,咱们称之为第一浪潮。访问了30s以后,第一浪潮在15s内逐渐退出系统。线程

在第一浪潮退出系统的同时,第二波2000用户在极短期内又忽然涌入网站,咱们称之为第二浪潮。在访问30s以后,第二浪潮在15s内也逐渐退出了系统。设计

在第二浪潮退出系统的同时,第三波3000用户又忽然涌入网站,咱们称之为第三浪潮。在访问30s以后,第三浪潮在15s内也逐渐退出了系统。3d

在第三浪潮退出系统的同时,第四波1000用户又忽然涌入网站,咱们称之为第四浪潮。在访问30s以后,第四浪潮在15s内也逐渐退出了系统。

并发的用户就像浪花一波一波的不断涌入系统,拍打服务器,考验咱们的系统可否顶住压力并平稳运行

 

测试方案设计

咱们知道,jmeter中的基础线程组用来构成对服务器的压力。

咱们在添加定时器以后,能够模拟出某一瞬间的压力。

可是这种线程组只能模拟出一个尖峰,若是咱们想要模拟出那种浪潮式的场景,它不能知足咱们的要求。

 

jmeter提供了另外一个线程组知足咱们的测试需求

Ultimate Thread Group(终极线程组)

 听起来是否是有点高端?下面咱们来了解一下它的用法

 

 

 如图所示

启动的线程数量(Start Threads Count),也就是访问的用户数

延迟时间(Initial Delay,秒),也就是压力到达的时间

线程启动时间(Startup Time,秒),也就是为了知足预期压力而加载线程所须要的时间

压力知足以后持续运行的时间(Hold Load For,秒)

释放掉压力须要的时间(Shutdown Time,秒)

每个Thread schedule 都是一个线程组。所以咱们能够把这个终极线程组理解为多个基础线程组的压力叠加

 

图中咱们模拟出了四个spike场景

 在第一批1000用户访问完毕的时候,第二批2000用户的压力又开始增长,第二批2000用户压力释放以后,第三批3000用户的压力又开始增长。。。。

 

下图是单位时间内活动的真实线程数,能够看出在中间两个批次压力下,线程根原本不及释放掉

 

结合tps监听和聚合报告能够看出,spike场景测试下,有不少事物没有正确响应,错误率达到了20.78%

 

原文出处:https://www.cnblogs.com/Zfc-Cjk/p/11109019.html

相关文章
相关标签/搜索