jmeter如何定位网络延时_JMeter用户定义变量和properties变量高级使用

099581fc208e502c4d5cbd4fba1eee8e.png

Jmeter有个配置元素叫做用户自定义变量(英文名称是UserDefinedVariables)而我们提到的vars即是Variables的简写。

之前我们也说到过Jmeter的脚本中(jsr223sampler或者beanshell编写的脚本)使用varsput和varsget的操作(varsget和put的操作仅在threadgroup测试组线程中执行,所以结果的改变也仅影响该threadGroup,所以不是跨线程组的。需要跨线程组的的变量共享则可以使用prop,vars和props的使用可见vars和props使用对比1和vars和props使用对比2)。那“用户自定义变量”和脚本中的vars操作这2个关系是如何的呢?

1)Userdefinedvariables(用户自定义变量)jmeter的处理是非常简单粗暴的,不管该元素位于哪个位置,例如位于threadgroup,还是在threadgroup外面的testplan中,位于threadgroup的执行顺序的最下面还是最上面。jmeter在启动并开始执行脚本之前,实际上对所有的用户配置类元素,全部初始化操作。

例如

TestPlan

  - User defined vars1(定义了var1=test)

  - threadgroup1

    - User defined vars2(定义var2=test2)

  - threadgroup2

则执行时,Userdefinedvars1和Userdefinedvars1都执行了初始化操作。同时threadgroup1和threadgroup2中均可以看到var1和var2.Userdefinedvars(用户自定义变量)初始化后,会将所有的定义变量copy到每一个线程组中,所以每一个线程组都可以看到userdefindvars(用户自定义变量)定义的参数。

2)jmeter脚本中(jsr223sampler或者beanshell编写的脚本)的vars.put操作,例如vars.put(“var1″,”changedvar1″),仅会修改该脚本执行的线程组的变量。

例如

TestPlan

  - User defined vars1(定义了var1=test)

  - threadgroup1

    - User defined vars2(定义var2=test2)

    - vars.put("var1","changedvar1")

    - Debug sampler1

  - threadgroup2

    - Debug sampler2

      - sleep 5秒(等待 threadgroup1 执行完成后,用于确认threadgroup1 中的vars.put 是否对threadgroup2的vars 变量有影响)

则执行后。
threadgroup1 中可见 var1=changedvar1 , var2=test2
threadgroup2 中可见 var1=test,var2=test2

3) 那么我们再来看下user defined vars(用户自定义变量)元素定义的变量var和jmeter 脚本中定义var的区别。

jmeter脚本重定义var 仅在自己所属的线程组有效,不是全局的。而 user defind vars(用户自定义变量)定义的是全局(全局的验证,在2部分已经可以看到)

TestPlan

  - User defined vars1(定义了var1=test)

  - threadgroup1

    - vars.put("var1","changedvar1")

    - vars.put("var3","test3")

    - Debug sampler1

  - threadgroup2

    - Debug sampler2

      - sleep 5秒(等待 threadgroup1 执行完成后,用于确认threadgroup1 中的vars.put 是否对threadgroup2的vars 变量有影响)

则执行后,
threadgroup1 中可见 var1=changedvar1 , var3=test3
threadgroup2 中可见 var1=test

因此我们在使用user defined vars可以统一写在一个地方,便于脚本的梳理。 而脚本中vars.get,vars.put 的处理仅对线程组内有效(包括listener监听器中的vars.get, vars.put)。 这样我们在脚本开发中就会更清晰和方便定位问题了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值