4

Jmeter——循环控制器中实现Counter计数器的次数重置 - 温一壶清酒

 2 years ago
source link: https://www.cnblogs.com/hong-fithing/p/17011086.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Jmeter——循环控制器中实现Counter计数器的次数重置 - 温一壶清酒 - 博客园

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

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

1242227-20221229165405599-482605126.png

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

1242227-20221229172851500-1494752487.png

图中的数字说明:${for1}${for2}${for3}

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

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

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

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

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

1242227-20221229173940252-1331199905.png

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

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

1242227-20221229175342757-1090306379.png

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

图中的数字说明:${for1}${for2}${for3}_${resetForNumber}

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

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

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

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

__EOF__

本文作者: 温一壶清酒 本文链接: https://www.cnblogs.com/hong-fithing/p/17011086.html 关于博主: 评论和私信会在第一时间回复。或者直接私信我。 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处! 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。

Recommend

  • 59
    • GAD腾讯游戏开发者平台 gad.qq.com 7 years ago
    • Cache

    Unity 游戏框架搭建 (二十二) 简易引用计数器

    引用计数是一个很好用的技术概念,不要被这个名字吓到了。首先来讲讲引用计数是干嘛的。引用计数使用场景有一间黑色的屋子,里边有一盏灯。当第一个人进屋的时候灯会打开,之后的人进来则不用再次打开了,因为已经

  • 91

    它不仅仅是代码行计数器,还可以在含有大量代码的目录中检测流行的开源许可证,和检测针对特定编程 API(例如 KDE 或 Win32)的代码。 -- Sk 有用...

  • 42
    • www.tuicool.com 5 years ago
    • Cache

    Redis 多方式实现计数器功能

    计数器在很多网站中都进行了广泛的应用,比如文章的点赞数、页面的浏览数、网站的访客数、视频的播放数等等。在这篇文章里,我会使用 Redis 的三种数据类型,来分别实现计数器的功能。 请跟随我一起来看看吧。

  • 16
    • www.cnblogs.com 5 years ago
    • Cache

    JMeter-While控制器

    前言 While 控制器,直到条件为false时,停止运行 ,循环执行一个请求,仅判断一种状态下退出循环。  Condition条件如下:  1:为空(不输入任何值) -- 直到某次请求执行失败才退出循环  2:LAST -- 直到...

  • 6

    Python enumerate():使用计数器简化循环 摘要:当您需要计数和迭代中的值时,Pythonenumerate()允许您编写 Pythonicfor循环。最大的优点enumerate()是它返回一个带有计数器和值的元组,因此您不必自己增加计数器。它...

  • 5
    • www.jianshu.com 2 years ago
    • Cache

    python计数器(Counter)

    零一间2022.05.08 14:54:43字数 359阅读 12Counter是collections模块的Counter类。collections中一共有9种容...

  • 11

    WordPress文章浏览量计数器Post Views Counter插件教程 https://www.chenweiliang.com/cwl-28026.html

  • 4

    Python编程:集合工具类之计数器(Counter)详解与实践 作者:传新视界 2022-11-01 07:54:18 本篇文章主要介绍了Python内置集合模块的工具类Counter的使用,并结合代码和描述,以期深入浅出的帮助你更好的理解和掌...

  • 5

    新的 mac 笔记本电池循环次数这个正常吗 V2EX  ›  Apple 新的 mac...

  • 4

    在Python中,编写可读性强且Pythonic的代码是至关重要的。重构技巧是指通过调整代码结构和风格,使其更符合Py...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK