说明
- 本次混合场景为单个线程组
- 结合if控制器,计数器,循环控制器
- jmeter v5.4.1
- 自己搭建的jforum
- 场景为:登录20:浏览帖子:40:回帖:15:发帖10,比例为:5:8:3:2
设置线程组
- 每秒钟并发两个登录请求,循环10次,也就是共发20次登录
参数化数据设置,注意的是线程共享模式
- 所有线程,默认选项,表示按照顺序执行,不会出现多次登录使用同一个用户,《全栈性能测试修炼宝典JMeter实战》书中作者,自己实现此功能,可能是书中用的jmeter版本比较老,新版本已经有了此功能
- 当前线程,在这种情况下,每个用户都会从头到尾读取 CSV 文件。
- 当前线程组,每个文件由每个线程组单独打开(不要与每个线程单独读取文件的“当前线程”混淆。这基本上意味着每个线程组中的每个线程从头到尾读取 CSV 文件,互不影响。要实际展示这种共享模式,您需要再创建一个线程组。
- 更详细说明请参考这篇文章
新增了一个登录计数器
登录简单控制器
- 登录成功后把模块id提出来
进入板块的if控制器
按照每登录4次的比例对帖子进行操作
浏览帖子循环控制器
- 循环8次,刚好为共浏览
5*8=40
次,提取帖子id,最后进入到帖子详情
回复帖子循环控制器
- 循环次数为3次,共发送
3*5=15
发帖循环控制器
- 循环2次,共发送
2*5=10
次
查看运行结果
- 发送的请求数量刚好对上
补充
今天在测试过程中,发现这样的脚本用问题,直接多次回帖和发帖子虽然请求成功了,但是没有插入数据库,用抓包的方式也是如此
后续经过测试,要改成这样的流程,不能单独循环发帖/回帖:
- 发帖:进入板块,选择发帖按钮,发送发帖请求
- 回帖:进入板块,选择帖子,点击回复帖子,发送回帖请求