前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jmeter模拟真实用户压测场景之阶梯螺纹线程组、终极线程组、并发线程组实例

Jmeter模拟真实用户压测场景之阶梯螺纹线程组、终极线程组、并发线程组实例

作者头像
王大力测试进阶之路
发布2019-10-25 17:49:08
2.5K0
发布2019-10-25 17:49:08
举报
文章被收录于专栏:橙子探索测试橙子探索测试

我们有时需要模拟非常真实复杂的用户压测场景,可以用到此插件来设计场景

1、安装插件,选项——Plugins Manager打开安装页面

2、搜索standard set并安装,重启jmeter,查看测试计划——添加线程组——jp@gc - Stepping Thread Group (deprecated

3、Stepping Thread Group复杂场景线程组

This group will start 100 threads【(并发数)设置单台负载机,线程组启动的线程总数为100个】

First,wait for 2 seconds【等待2s后开始起线程】

Then start 3 threads【设置最开始时启动3个线程】

Next,add 10 threads every 30 seconds,using ramp-up 5 seconds:每隔5秒,在5秒内启动10个线程【5s启动10个线程运行30s,再5s启动余下10个线程,再运行30s,以此类推】

Then hold load for 60 seconds【单台负载机启动的线程总数达到最大值100线程后,再持续运行60秒(一直在请求,相当于jmeter普通线程组里面的循环运行)】

Finally,stop 5 threads every 2 seconds【5个线程停1次,等2s再停5个线程】

举个例子:一个线程组下包含了登陆和抽奖两个接口

1、继续:如果登陆接口失败,会继续执行抽奖接口

2、start next thread loop:主要针对循环次数>=2的时候。在loop1的时候,如果登陆接口失败,会停止loop1开始loop2,重新执行循环接口;所以如果循环次数设置为1的时候,其实就是结束了线程。

3、停止线程:比如有50个线程,循环次数=2;线程2的登陆接口失败之后,直接停止线程2,不再循环

4、停止测试:如果接口失败就停止线程,但是已经执行中的线程需要等结束之后自动停止

5、stop test now:立刻停止所有线程,包括已经执行中的线程。

6、this group will start:表示总共要生成的线程数,如图:设置为20000个,表示总共会加载到20000个线程

7、first,wait for:第一个线程从点击执行之后多长时间开始加载,如图:设置为0秒,表示点击执行之后立即执行

8、then start:初次加载多少个线程,如图:设置为1000个,表示初次会加载1000个线程(在60秒内)

9、next add:之后每次加载多少个线程,如图:设置为5000个,表示每次多加载5000个线程

10、threads every:当前运行多长时间后再次加载线程,及每一次加载完成之后的持续时间,如图:设置为600秒,每次加载完之后持续执行600秒

11、using ramp-up:加载线程的时间,如图:设置为60秒,表示每一次加载需要在60秒内完成

12、then hold load for:线程全部加载完之后运行多长时间,如图:设置为300秒,表示最后20000个线程加载完之后再持续300秒

13、finally,stop/threads every:每多长时间停止多少个线程,如图:设置为10个和1秒,表示每1秒钟停止10个线程

4、Ultimate Thread Group终极线程组、阶梯线程组

提供了一个'Threads Schedule' 线程计划表,您可以在其中配置不同的线程组。您可以决定

线程数量('Start Threads Count')

每组开始添加到测试执行之前的延迟('Initial Delay,sec')

线程组的加速期('Startup Time') ,sec')

在减速前线程组的持续时间('Hold Load For,sec')

所有线程组应该关闭的速度('Shutdown Time')

所有线程组同时启动,但每个线程组都有自己的Intial Delay“初始延迟”值,这有助于分别从每个组中分离用户。

示例一:

最后的10s停止阶段,每s停止30线程

示例二:模拟浪潮式的压测场景

常见的场景:

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

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

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

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

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

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

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

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

5、并发线程组bzm - Concurrency Thread Group阶梯式加压

Target Concurrency:目标并发(线程数)

Ramp Up Time:加速时间

Ramp-Up Steps Count:加速步骤计数

Hold Target Rate Time:保持目标速率时间

Time Unit:时间单位(分钟或者秒)

Thread Iterations Limit:线程迭代次数限制(循环次数)

Log Threads Status into File:将线程状态记录到文件中(将线程启动和线程停止事件保存为日志文件);

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 橙子探索测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档