• jmeter(18)counter计数器函数和计数器配置元件


    一. 计数器函数






    counter

    1、计数器函数每次调用时都会生成一个新数字,从1开始逐渐增加1。计数器可以配置为将每个摸拟用户的值分开,或者为所有用户使用相同的计数器。如果每个用户的值县有单独的增量。则类似于计算测试计划中的迭代次数。全局计数器计算该请求运行的次数。

    计数器使用整数变量来保存计数,因此最大值为2,147,483,647。

    2、参数

    1)第一个参数即TRUE,每个用户有自己的计数器;FALSE,使用全局计数器:
    True 每个虚拟用户有自己的计数器,每个虚拟用户的计数器保持独立  
    false:全局计数器
    2)第二个参数: 存储结果的变量名(可选)//重用计数器函数创建值的引用名。
    供后续引用计数器的值:
    ${counter}说明:

    a.当第一个参数是true时,5个线程,则结果为1 1 1 1 1

    运行结果:


    b.当第一个参数是true时,5个线程,循环2次,则结果为1 2 1 2 1 2 1 2 1 2 (配置元件中的计数器可以设置是否在每次循环时重新计数,这里默认是否)。
    理解:因为设置为true时,每个虚拟用户有自己的计数器,每个虚拟用户的计数器保持独立,所以循环2次时,第一个线程数累计计算计数器,此时计数器=2
    以此类推,第五个线程数循环2次也是计算器=2,也就是一个线程数调用计算器次数是2次。








    c.当第一个参数是false时,5个线程,则结果为1 2 3 4 5
    理解:因为设置为false时,false:全局计数器,计算的全部线程数一起调用的次数。
    每一次请求都算作一次统计,所以一共统计了5次。



    d.当第一个参数是false时,5个线程,循环2次,则结果为1 2 3 4 5 6 7 8 9 10
    Lable就是http请求sample的名称



     

    如果多个请求引用计数器,则每个请求都遵守上面的规则,不会产生影响,独立。

    场景1: 2个请求,都是设置为true


    场景2:  2个请求,都是设置为false
    请求与请求之间没有关系,只为各自的请求进行计数,比如我这个计数器只统计我这个请求下面的。










    二.计数器配置元件
    新增-配置元件-计数器

     

    Starting value:给定计数器的起始值、初始值,第一次迭代时,会把该值赋给计数器 

    递增(Increment):每次迭代后,给计数器增加的值

    Maximum value:计数器的最大值,如果超过最大值,重新设置为初始值(Start),默认的最大值为Long.MAX_VALUE,2^63-1(如果持续压测,建议最好不要设置最大值)

    数字格式Number format:可选格式,比如000,格式化为001,002;默认格式为Long.toString(),但是默认格式下,还是可以当作数字使用

    引用名称(Reference Name):用于控制在其它元素中引用该值,形式:$(reference_name}

    与每用户独立的跟踪计数器(Track Counter Independently for each User):

    1)如果勾选<与每用户独立的跟踪计数器>,不勾选每次迭代复原计数器,即独立的
    (备注:等同于计数器函数设置为true,每个虚拟用户有自己的计数器,每个虚拟用户的计数器保持独立),则每个用户有自己的值:比如用户#1 获取值为1,用户#2获取值为2。


    既然是独立的
    场景1: 
    前提:勾选与每用户独立的跟踪计数器时,不勾选每次迭代复原计数器
    请求1,计数器如下,运行结果:都是=1

     

    场景2:
    前提:勾选与每用户独立的跟踪计数器时,不勾选每次迭代复原计数器
    5个线程 循环2次 运行结果也是12 12 12 12 12 同计数器函数运行结果

    2)每次迭代复原计数器(Reset counter on each Thread Group Iteration):这点是计数器和计数器函数的不同之处!

    a.可选,仅在<勾选与每用户独立的跟踪计数器时>可用;

    b.勾选与每用户独立的跟踪计数器时,勾选每次迭代复原计数器,则每次线程组迭代,都会重置计数器的值,当线程组是在一个循环控制器内时比较有用。

    场景2:
    前提:勾选与每用户独立的跟踪计数器时,勾选每次迭代复原计数器
    5个线程 循环2次 
    计数器函数运行结果:11111 11111  (也就是每次线程组迭代,都会重置计数器的值)
    计数器函数运行结果也是12 12 12 12 12

    3) 如果不勾选与每用户独立的跟踪计数器时,即全局的,全局的计数器,比如用户#1 获取值为1,用户#2获取值还是为1;
    (备注:等同于计数器函数设置为false,false:全局计数器,计算的全部线程数一起调用的次数。)



    场景2: 不勾选与每用户独立的跟踪计数器时
    5个线程 循环2次  ${counter}   ${__counter(false,yy)}
    计数器函数=
    计数器函数运行结果:12345 678910
    计数器函数运行结果也是:12345 678910



     














    先忽略:
    与每用户独立的跟踪计数器(Track Counter Independently for each User):全局的计数器,如果不勾选,即全局的,3个vuser,两次循环,则生成6个不同的count,相当于LR的unique each interation

    如果勾选,即独立的,则每个用户有自己的值,3个vuser,两次循环,则vuser1从1到2,vuser2从1到2,vuser3从1到2,相当于LR的sequential each interation

    每次迭代复原计数器(Reset counter on each Thread Group Iteration):可选,仅勾选与每用户独立的跟踪计数器时可用;

    如果勾选,3个vuser,两次循环,每个vuser的每次循环生成的结果都是1,相当于LR的sequential once

     

  • 相关阅读:
    0MQ手册(给力!)
    Beansdb动态关注
    要成功?每天记得这几点(成功手抄本)
    使用Entity Framework和WCF Ria Services开发SilverLight之7:多个Domain Service间共享Poco实体
    使用Entity Framework和WCF Ria Services开发SilverLight之4:Map之主外键映射
    SilverLight Tip 1 : Validation
    使用Entity Framework和WCF Ria Services开发SilverLight之6:查找指定字段
    SilverLight单元测试1:框架
    MVVM模式之:ViewModel Factory与注入
    MVC TIP5:JQuery AJAX错误捕获
  • 原文地址:https://www.cnblogs.com/yiyaxuan/p/12378826.html
Copyright © 2020-2023  润新知