概述

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

为了验证我们的网站在访问用户急剧增加的情况下,或者短时间内反复急剧增加工作负载时能否正常工作;以及程序能否从高负荷中恢复并正常工作时常常用到这种测试手法。

Spike在英文中是钉子的意思,或者我们可以将其称之为冲击测试,反复冲击服务器。

常见的场景有

12306开始售票时用户急剧增加

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

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

等等。。。。

现在我们假设有这样一个场景

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

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

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

在第三浪潮退出系统的同时,第四波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%

jmeter模拟spike测试(尖峰测试)的更多相关文章

  1. jmeter模拟spike尖峰测

    jmeter模拟spike尖峰测试 概述 尖峰测试(Spike testing)在性能测试中属于压力测试的一个子集.指的是在某一瞬间或者多个频次下用户数和压力陡然增加的场景. 为了验证我们的网站在访问 ...

  2. Spring Cloud & Alibaba 实战 | 第十二篇: 微服务整合Sentinel的流控、熔断降级,赋能拥有降级功能的Feign新技能熔断,实现熔断降级双剑合璧(JMeter模拟测试)

    目录 一. Sentinel概念 1. 什么是Sentinel? 2. Sentinel功能特性 3. Sentinel VS Hystrix 二. Docker部署Sentinel Dashboar ...

  3. Jmeter(五十) - 从入门到精通高级篇 - jmeter 之模拟弱网进行测试(详解教程)

    1.简介 在实际工作中,网络带宽一定不会是持续稳定的保持某一个值,而是有高有低.因此为了测试场景和实际能够无限的接近,所以我们需要模拟一下来达到效果.还有就是在实际的测试工作中,会因为业务需要,有时限 ...

  4. 使用JMeter进行简单的压力测试

    一.压力测试 顾名思义:压力测试,就是  被测试的系统,在一定的访问压力下,看程序运行是否稳定/服务器运行是否稳定(资源占用情况). 比如: 2000个用户同时到一个购物网站购物,这些用户打开页面的速 ...

  5. 使用jmeter对websocket进行压力测试[转载]

    前段时间本着练习angularJS+requireJS的目的写了一个基于nodeJS和socket.io的聊天室,github地址为:https://github.com/towersxu/node- ...

  6. ab和jmeter进行GET/POST压力测试的使用心得和比较

    引言: 互联网服务压测是非常重要的评价方法,ab,webbench,jmeter等都是业界流行的测试工具,ab和webbench作为shell模式下轻量级的测试工具,jmeter则作为有GUI界面的更 ...

  7. Windows和Linux的Jmeter分布式集群压力测试

    Windows的Jmeter分布式集群压力测试 原文:https://blog.csdn.net/cyjs1988/article/details/80267475 在使用Jmeter进行性能测试时, ...

  8. Jemter 压测基础(一)——基本概念、JMeter安装使用、分布式测试、导出测试结果、编写测试报告

    Jemter   压测基础(一) 1.压力测试的基本概念: 1.吞吐率(Requestspersecond) 服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请 ...

  9. Jmeter对HTTP请求压力测试、并发测试的简单使用方法

    对于服务器性能测试这块的经验更是少得可以忽略.迫使不得不让我们去尝试了解测试的知识. 首先我们的需求场景如下: 服务器硬件:(只有一台) 系统:Windows 2003 WebServer:Tomca ...

随机推荐

  1. onload 事件

    定义和用法 onload 事件会在页面或图像加载完成后立即发生. 语法 onload="SomeJavaScriptCode" 参数 描述 SomeJavaScriptCode 必 ...

  2. Java--ConcurrentHashMap原理分析

    一.背景: 线程不安全的HashMap     因为多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap.   效率低下的H ...

  3. 机器学习: 基于MRF和CNN的图像合成

    前面我们介绍了基于卷积神经网络的图像风格迁移,利用一张content image 和 style image,可以让最终的图像既保留content image的基本结构,又能显示一定的style im ...

  4. C#中的DataGridView

    关键字:C# DataGridView作者:peterzb来源:http://www.cnblogs.com/peterzb 1.DataGridView实现课程表 testcontrol.rar 2 ...

  5. 3DTools TrackballDecorator实现3D漫游

    原文:3DTools TrackballDecorator实现3D漫游 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/m0_37591671/art ...

  6. JS enter代替tab,只有部分键可以代替

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  7. wpf 绑定数据无法更新ui控件可能存在的问题

    BindingMode的枚举值有: ① OneWay ② TwoWay ③ OneTime:根据源端属性值设置目标属性值,之后的改变会被忽略,除非调用BindingExpression.UpdateT ...

  8. WM_SIZE后于WM_CREATE消息!!在窗口被创建时的顺序!

    WM_SIZE   procedure WMSize (var Message: TWMSize); message WM_SIZE; 参数说明 wParam: Specifies the type ...

  9. windows下服务程序相关(别人提供的5种封装使用)

    作者: daodaoliang 版本: V 0.0.1 日期: 2017年11月25日 1. Windows Service 编程实现 在windows平台下面编写 服务程序 免不了要去查看微软的开发 ...

  10. 关于jquery.fileupload结合PHP上传图片的开发用法流程

    这阵子做了一个项目,涉及到了图片上传,以往用的都是uploadify这个插件,感觉它在PC上的使用还是很强大的, 不过最近这个项目涉及到了移动端的上传,其实uploadify也可以,但是他有一个 up ...