Jmeter——循环控制器中实现Counter计数器的次数重置

这篇具有很好参考价值的文章主要介绍了Jmeter——循环控制器中实现Counter计数器的次数重置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

近期在使用Jmeter编写个辅助测试的脚本,用到了多个Loop Controller和Counter。

当时想的思路就是三个可变的数量值,使用循环实现;但第三个可变值的数量次数,是基于第二次循环中得到的结果才能确认最终次数,每次的结果还会有不一样的情况。基于思路,先写了个线性脚本,实现如下所示:

Jmeter——循环控制器中实现Counter计数器的次数重置,软件测试,jmeter,功能测试,软件测试,自动化测试,程序人生,职场和发展

但实际中,第三层循环,并没有按自己预期来实现,所以就想到了Counter计数器,将脚本中加入了Counter计数器,实现如下所示:

Jmeter——循环控制器中实现Counter计数器的次数重置,软件测试,jmeter,功能测试,软件测试,自动化测试,程序人生,职场和发展

图中的数字说明:f o r 1 {for1}for1{for2}${for3}

${for1}是第一个循环器中的Counter变量名
${for2}是第二个循环器中的Counter变量名
${for3}是第三个循环器中的Counter变量名

从图中可以看出,${for3}是累加的,不会随着一次循环结束,计数自动重置。

我所想实现的是,第二层循环中的第一次获取的结果是5个数组,则从索引0 ~ 4依次按置执行第三层循环;第二层循环中的第二次获取的结果是8个数组,则从索引0 ~ 7依次按置执行第三层循环。

但这样操作下来,第二次是会直接从索引5开始执行,这样就会丢失一部分数据,显然不是自己所想的。

中途也试过很多错,都不能实现计数重置的功能。好在,某天想起了官方文档,这个功能在文档是有描述的,如下所示:

Jmeter——循环控制器中实现Counter计数器的次数重置,软件测试,jmeter,功能测试,软件测试,自动化测试,程序人生,职场和发展

文档中描述的很清楚,可以使用${__jm__LC__idx}的方式实现index从0开始,其中LC为控制器的名称。

使用官网的文档,在脚本中加入变量使用,运行如下所示:

Jmeter——循环控制器中实现Counter计数器的次数重置,软件测试,jmeter,功能测试,软件测试,自动化测试,程序人生,职场和发展

从图中可知,第三层循环的第四个数字就是我所想要的,终于解决了心中的问题。

图中的数字说明:f o r 1 {for1}for1{for2}KaTeX parse error: Expected group after '_' at position 7: {for3}_̲{resetForNumber}

前三个数字在之前已经说明过了,这里只说明下${resetForNumber},这个变量是通过BeanShell Sampler中获取的,因为将官网给出的方案写在了BeanShell Sampler种,代码如下所示:

long i=0;
i = ${__jm__Loop Controller3__idx};
vars.put("resetForNumber",String.valueOf(i));

虽然,描述起来很简单,但的确是实际脚本实现的过程中遇到的一个阻碍,好在问题解决了。

所以特整理此篇,希望对以后有需要的朋友有所帮助。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

Jmeter——循环控制器中实现Counter计数器的次数重置,软件测试,jmeter,功能测试,软件测试,自动化测试,程序人生,职场和发展

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

Jmeter——循环控制器中实现Counter计数器的次数重置,软件测试,jmeter,功能测试,软件测试,自动化测试,程序人生,职场和发展文章来源地址https://www.toymoban.com/news/detail-841114.html

到了这里,关于Jmeter——循环控制器中实现Counter计数器的次数重置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JMeter 逻辑控制之IF条件控制器

    JMeter-5.4.1 添加While Controller 右键线程组-添加-逻辑控制器-While控制器 添加后,面板如下 仅Expression值为true,才会执行位于其下的操作 最好勾选(默认配置)Interpret Condition as Variable Expression?,这样Expression输入框可以有两种输入选择: 输入一个值为true 或者false的变量 比如,如果

    2024年02月02日
    浏览(54)
  • 【Jmeter教程】_事务控制器

    目录 一、添加事务控制器 二、事务控制器参数说明 三、运用事务控制器 统计性能测试结果一定会关注TPS,TPS表示 每秒处理事务数 ,JMeter默认每个事务对应一个请求。我们可以用逻辑控制器中的 事务控制器 将多个请求统计为一个事务。 Generate parent sample:如果事务控制器下

    2024年02月11日
    浏览(40)
  • Jmeter调用测试片段 —— 模块控制器

    可以使用模块控制器调用测试片段。模块控制器提供了一种在运行时将测试片段替换为当前测试计划的机制。测试片段可以位于任何线程组中。 1、打开一个Jmeter窗口,添加好线程组、用户定义变量、模块控制器、测试片段、察看结果树。 2、用户定义变量同样定义好访问ip及

    2024年02月05日
    浏览(50)
  • Jmeter 控制器表达式写法

    在测试场景中有用到IF控制器,当javascript表达调试通过后,看到IF控制器的提示,显示jexl3 和groovy 表达式性能更好,故想转换成jexl3 或groovy 表达式,但来来回回试了一个小时,才全部调试通过,所以在此记录一下,方便后续查询。 在Jmeter的测试计划中添加IF控制器,当变量

    2024年02月12日
    浏览(32)
  • 【P30】JMeter 事务控制器(Transaction Controller)

    可以生成一个额外的样本,这样能够将它的所有子元素作为一个计量单元进行监听;事务控制器本身不包含任何业务逻辑,只是组合出一个新的计量单元 选择线程组右键 添加 逻辑控制器 事务控制器(Transaction Controller) Generate parent sample:选中,事务控制器将作为其他取样器

    2024年02月06日
    浏览(84)
  • 【P38】JMeter 随机控制器(Random Controller)

    可以让控制器内部的逻辑随机执行一个,一般用来模拟业务的不确定性;随机控制器在线程迭代或者控制器循环的时候均会触发 选择线程组右键 添加 逻辑控制器 随机控制器(Random Controller) 忽略子控制器块(Ignore sub-controller blocks):子控制器功能失效,由交替控制器代替

    2024年02月07日
    浏览(40)
  • 【P34】JMeter ForEach控制器(ForEach Controller)

    可以对一个组变量进行循环迭代;该组件通常与后置处理器中的 JSON 提取器、正则提取器、边界提取器等进行联合使用 选择线程组右键 添加 逻辑控制器 ForEach控制器(ForEach Controller) 输入变量前缀(Input variable prefix):默认为一个空字符串作为前缀 开始循环字段(不包含)

    2024年02月06日
    浏览(44)
  • 【OC】使用协议(Protocol)在Cocoa应用程序中实现视图控制器之间的通信

    在Cocoa应用程序开发中,视图控制器(ViewController)之间的通信是非常常见的需求。为了实现这种通信,我们可以使用协议(Protocol)来定义一个接口,然后让视图控制器遵循该协议并实现相应的方法。本文将介绍如何使用协议在Cocoa应用程序中实现视图控制器之间的通信。 首

    2024年02月05日
    浏览(39)
  • JMeter 特殊组件-逻辑控制器与BeanShell PreProcessor 使用示例

      如果您觉得有用的话,记得给 博主点个赞,评论,收藏一键三连啊 ,写作不易啊^ _ ^。   而且听说 点赞的人每天的运气都不会太差 ,实在白嫖的话,那欢迎常来啊!!! 1. 逻辑控制器使用 流程: 1、选择你的HTTP请求; 2、单机右键-选择插入上级 3、选择逻辑控制器 1.1.

    2024年02月12日
    浏览(39)
  • 【P33】JMeter 临界部分控制器(Critical Section Controller)

    可以对指定代码块增加同步锁,确保此代码块由单线程执行;通过 Java synchronized 实现 选择线程组右键 添加 逻辑控制器 临界部分控制器(Critical Section Controller) 锁名称(Lock name):锁名为空,认为每个锁为不同的锁;锁名相同,多个锁认为是同一个锁,同一个时间点

    2024年02月07日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包