JMeter5.0:vars&props差异

25 篇文章 1 订阅
15 篇文章 1 订阅

在使用JSR223 SamplerBeanShell Sampler时,会接触到二个变量:vars,props
它们有什么区别呢?

本质作用域操作对象
varsjmeter variable单线程getObject,putObject
propsjmeter properties全局get,put

1. vars

1.1. put

put只支持string类型,当我们put整形时,jmeter抛出异常
如果需要设置非string类型数据,请使用putObject

vax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: org.apache.jmeter.threads.JMeterVariables.put() is applicable for argument types: (java.lang.String, java.lang.Integer) values: [num, 3]
Possible solutions: put(java.lang.String, java.lang.String), get(java.lang.String)

vars.put("num", 3)

def x = vars.get("num")
def y = 7
def total = x + y

log.info("x + y = " + total)

1.2. putObject

当遇到map,list,function等对象时,请记住putObject,并配合getObject使用

vars.putObject("num", 3)

def x = vars.getObject("num")
def y = 7
def total = x + y

log.info("x + y = " + total)

输出:JSR223 Sampler: x + y = 10

props

共享数据使用props,线程独立使用vars
image.png

2021-10-21 09:50:51,777 INFO o.a.j.t.JMeterThread: Thread started: Thread Group 1-1
2021-10-21 09:50:51,778 INFO o.a.j.t.JMeterThread: Thread started: Thread Group 2-1
2021-10-21 09:50:51,784 INFO o.a.j.t.JMeterThread: Thread is done: Thread Group 1-1
2021-10-21 09:50:51,784 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 1-1
2021-10-21 09:50:51,789 INFO o.a.j.p.j.s.J.读取变量: >>>>>>>>>>>>>>>>From jmeter properties
2021-10-21 09:50:51,789 INFO o.a.j.p.j.s.J.读取变量: ================null
2021-10-21 09:50:51,789 INFO o.a.j.t.JMeterThread: Thread is done: Thread Group 2-1
2021-10-21 09:50:51,789 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 2-1
2021-10-21 09:50:52,287 INFO o.a.j.t.JMeterThread: Thread started: Thread Group 2-2
2021-10-21 09:50:52,289 INFO o.a.j.p.j.s.J.读取变量: >>>>>>>>>>>>>>>>From jmeter properties
2021-10-21 09:50:52,289 INFO o.a.j.p.j.s.J.读取变量: ================null
2021-10-21 09:50:52,289 INFO o.a.j.t.JMeterThread: Thread is done: Thread Group 2-2
2021-10-21 09:50:52,289 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 2-2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当在JMeter中执行测试时,可能会遇到"failed: Connection refused: connect"错误。这个错误通常是由于以下原因之一引起的: 1. 服务端连接处理能力不足:这个错误可能是由于服务端的连接处理能力不足导致的。服务端只能同时处理有限数量的连接,如果超过了这个数量,就会拒绝新的连接请求。 2. 网络问题:这个错误也可能是由于网络问题引起的。可能是服务端无法响应连接请求,或者网络中存在阻塞或故障。 为了解决这个问题,你可以尝试以下几个方法: 1. 检查服务端连接处理能力:确保服务端的连接处理能力足够。如果服务端只允许同时建立1万个连接,而你的测试中超过了这个数量,就会出现连接被拒绝的错误。可以与服务端管理员沟通,了解服务端的连接处理能力,并相应地调整你的测试设置。 2. 检查网络连接:确保网络连接正常。可以尝试使用其他工具或命令来测试与服务端的连接是否正常,例如使用telnet命令。 3. 调整JMeter设置:可以尝试调整JMeter的设置来减少连接数或增加连接超时时间。可以通过减少线程数或增加连接超时时间来降低连接请求的频率,以便服务端能够处理更多的连接。 4. 使用合适的插件:如果你需要提取JMeter请求的JSON响应结果,可以使用JSON Extractor插件来提取所需的数据。确保你已经正确安装了JSONPathExtractor插件,并按照插件的文档说明来使用它。 希望以上方法能够帮助你解决"failed: Connection refused: connect"错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值