Jmeter模块详解(9)逻辑控制器

目录

仅一次控制器Once Only Controller

事务控制器Transaction Controller

吞吐量控制器(业务比例)

运行时间控制器RunTime Controller(接口独立运行)



仅一次控制器Once Only Controller

放入其中的请求每个线程只会迭代一次,如果作为Loop Controller的子节点,Once Only Controller在每次循环的第一次迭代时均会被执行

如图登录请求置于其下目录:

事务控制器Transaction Controller

事务控制器会生产一个额外的采样器,用来统计该控制器子结点的所有时间。

Generate parent sample:(选中这个参数结果展示如下图红框,否则显示为下图蓝框)

Include duration of timer and pre-post processors in generated sample:选中这一项会统计定时器(timer)的时间,否则只统计采样器(sample)的时间

吞吐量控制器(业务比例)

通过控制每个线程对线程组下的多个请求的执行频率,来控制业务比例,以达到样本数比例的效果。

当业务比例为50%/50%等均分比例时,多请求为串行处理模式(其实是因为线程按上下顺序执行请求),这种比例其实和不设置控制器没区别;业务比例不为均分比例时,多请求为并行处理模式。

指定循环次数时,样本总数(线程数x循环次数)需要足够大才有控制比例的效果。

*在没有添加任何逻辑控制器情况下,样本总数=线程数x循环次数x取样器数

场景1.设置1线程持续5分钟,业务比例80%/20%;可以看到这个线程每5次迭代包含4个文字保存请求和1个图片上传请求,符合80%/20%比例,最后样本数也差不多8:2的比例:

场景2.设置10线程持续5分钟,业务比例80%/20%;可以看到10个线程对两个请求是并行处理的,每个线程同样是上面场景1的执行模式:

场景3.设置10线程循环1次,业务比例50%/50%;可以看到两个请求是串行处理的,所以只用到5个线程(感觉是设计bug=_=):

场景4.设置10线程循环1次以上或者持续5分钟,业务比例50%/50%;可以看到第一次迭代两个请求依旧是串行处理的,但是同时用到了10个线程,两次迭代后每个线程遵守场景1的运行模式:

运行时间控制器RunTime Controller(接口独立运行)

该模块会强制线程运行指定的时间,时间结束后才会释放线程,然后运行下一个接口;

应用示例:

如果一个线程组下有多个接口,由于木桶效应,所有接口的吞吐量是几乎一致的,这样不利于考察单个接口的吞吐量指标;而且这时线程是对所有接口进行并发测试,而不是单个接口的并发测试,无法体现单个接口的性能:

而采用运行时间控制器后,可以看到两个接口的吞吐量是不一样的:

再看看设置,把线程组循环次数设为1,运行时间控制器设置10秒,这样就做到了每个接口以100个线程独立运行10秒的效果了:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值