0%

混合场景单线程组

说明

  • 本次混合场景为单个线程组
  • 结合if控制器,计数器,循环控制器
  • jmeter v5.4.1
  • 自己搭建的jforum
  • 场景为:登录20:浏览帖子:40:回帖:15:发帖10,比例为:5:8:3:2

设置线程组

  • 每秒钟并发两个登录请求,循环10次,也就是共发20次登录

image-20211102180619354

  • 参数化数据设置,注意的是线程共享模式

    • 所有线程,默认选项,表示按照顺序执行,不会出现多次登录使用同一个用户,《全栈性能测试修炼宝典JMeter实战》书中作者,自己实现此功能,可能是书中用的jmeter版本比较老,新版本已经有了此功能
    • 当前线程,在这种情况下,每个用户都会从头到尾读取 CSV 文件。
    • 当前线程组,每个文件由每个线程组单独打开(不要与每个线程单独读取文件的“当前线程”混淆。这基本上意味着每个线程组中的每个线程从头到尾读取 CSV 文件,互不影响。要实际展示这种共享模式,您需要再创建一个线程组。
    • 更详细说明请参考这篇文章

    image-20211103094204881

  • 新增了一个登录计数器

    image-20211103095147850

登录简单控制器

  • 登录成功后把模块id提出来

image-20211103095319643

进入板块的if控制器

  • 按照每登录4次的比例对帖子进行操作

    image-20211103095436383

浏览帖子循环控制器

  • 循环8次,刚好为共浏览5*8=40次,提取帖子id,最后进入到帖子详情

image-20211103095727165

回复帖子循环控制器

  • 循环次数为3次,共发送3*5=15

image-20211103100141261

发帖循环控制器

  • 循环2次,共发送2*5=10

image-20211103100343560

查看运行结果

  • 发送的请求数量刚好对上

image-20211103100519007

补充

  • 今天在测试过程中,发现这样的脚本用问题,直接多次回帖和发帖子虽然请求成功了,但是没有插入数据库,用抓包的方式也是如此

  • 后续经过测试,要改成这样的流程,不能单独循环发帖/回帖:

    • 发帖:进入板块,选择发帖按钮,发送发帖请求
    • 回帖:进入板块,选择帖子,点击回复帖子,发送回帖请求

    image-20211111175757903