ITPub博客

首页 > 数据库 > 数据库开发技术 > 用Groovy处理JMeter变量

用Groovy处理JMeter变量

原创 数据库开发技术 作者:FunTester 时间:2020-03-04 09:12:36 0 删除 编辑

本来没打算写这个系列的,又看了看JMeter的文档,发现Groovy在JMeter中能发挥很多非常有趣的功能,虽然语法和API比较隐晦,但好得不多。

前面已经写过文章介绍了Groovy断言:用Groovy处理JMeter断言和日志。

下面介绍下一个题目:Groovy处理JMeter变量,这里的变量分为线程私有(局部)和线程共享(全局)。

线程私有

  • 首先新建一个简单的线程组和一个简单的请求:

请注意参数t去的是局部变量MY1的值。

  • 添加JSR223 预处理程序(后置处理程序需要下一次次请求)

脚本内容如下:

OUT. println 'FunTester'
log.error '输出JMeter控制台错误'
vars.put("MY1","FunTester")
def my_var = vars.get("MY");
log.warn "输出参数-------- ${vars} console"
log.info("222222 " + my_var);
  • 控制台输出
2020-03-03 21:02:30,499 INFO o.a.j.t.JMeterThread: Thread started: 线程组 1-1
2020-03-03 21:02:30,517 ERROR o.a.j.m.J.JSR223 预处理程序: 输出JMeter控制台错误
2020-03-03 21:02:30,518 WARN o.a.j.m.J.JSR223 预处理程序: 输出参数-------- org.apache.jmeter.threads.JMeterVariables@14a52b54 console
2020-03-03 21:02:30,518 INFO o.a.j.m.J.JSR223 预处理程序: 222222 FunTester
  • 查看结果树

至此已经完美搞定私有变量。

线程共享

线程共享变量的处理方法跟上一个基本一模一样,除了对象名和方法名意外。

脚本内容如下:

OUT. println 'FunTester'
log.error '输出JMeter控制台错误'
vars.put("MY1","FunTester")
def my_var = vars.get("MY1");
log.warn "输出参数-------- ${vars} console"
log.info("222222 " + my_var);


props.put("MY",test())
log.info(props.get("MY"))

def test(){
"funtest" + fan()
}

def fan(){
System.currentTimeMillis()
}

这里我稍微写了两个方法,验证了一下Groovy的方法是否可行

  • 参数设置
  • 查看结果树

Groovy如何处理JMeter的变量的Demo到此结束了。


  • 郑重声明:文章首发于公众号“FunTester”,禁止第三方(腾讯云除外)转载、发表。

技术类文章精选

无代码文章精选

原文作者:FunTester;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2019-07-07

  • 博文量
    1037
  • 访问量
    420879