meter 的 JSR223 控件是 代替 BeanShell 的新一代脚本控件,支持多种脚本语言,尤其是其中的 Groovy,更是重点推荐使用的脚本语言,本文研究其中的 vars 和 props 两种对象的用法。

目录

本文使用的 Jmeter 是 4.0 版本

二者的区别

props 和 vars 主要有两点区别:

vars 只能在当前线程内使用,props 可以跨线程组使用
vars 只能保存 String 或者 Object,props 是 Hashtable 对象

vars

vars 中的变量仅对当前线程组内可见,跨线程组则需要使用属性。

保存字符串变量

读取变量值使用 vars.put(var, value) 函数,例如

vars.put("IS_OPEN", "true");

注意,上面的 "NEW_VALUE" 必须是字符串类型,传递其他类型,包括 null,都会导致报错。如果想使用数字、数组等类型,一种方法是做类型转换:

vars.put("MUST_BE_STRING", "" + 1);
vars.put("MUST_BE_STRING", (String)1);
vars.put("MUST_BE_STRING", [2, 3, 4].toString());
vars.put("MUST_BE_STRING", (String)[1,2]);
vars.put("MUST_BE_STRING", "" + [2, 3, 4]);
vars.put("MUST_BE_STRING", "" + true);
vars.put("MUST_BE_STRING", true.toString());

另一种方法是使用 对象存储方法 。

读取字符串变量

vars.get() 方法用于读取变量值:

vars.get("IS_OPEN");

如果传递的 "VARIABLE_NAME" 预先不存在,将返回 null.

保存对象

vars保存对象类型 (包括 List、Map、Closure 之类),使用如下方法:

vars.putObject("OBJECT_NAME", Object);

比如

vars.putObject("NUMBER", 1);
vars.putObject("ARRAY", []);
vars.putObject("CLOSURE", { x, y -> x+y });
读取对象

vars 读取对象类型,使用如下方法:

vars.getObject("OBJECT_NAME");

props

props 继承了 Hashtable 的类,所以拥有与 vars 类似的 get 和 put 方法,另外还继承了 Hashtable 的其他方法 :

判断某项属性是否存在,返回布尔值

props.containsKey("PROPERTY_NAME")

判断某项值是否存在,返回布尔值

props.contains("PROPERTY_VALUE")

删除某个值

props.remove("PROPERTY_NAME")

所有属性以字符串形式表示

props.toString()

Jmeter 的 vars 和 props 用法的更多相关文章

  1. Jmeter——BeanShell 内置变量vars、props、prev的使用

    在使用Jmeter过程中,或多或少都会接触些BeanShell,它会使工具的使用,变得更灵活. Jmeter中关于BeanShell的有: 1.BeanShell Sampler 取样器:完成Bean ...

  2. Vue props用法详解

    Vue props用法详解 组件接受的选项之一 props 是 Vue 中非常重要的一个选项.父子组件的关系可以总结为: props down, events up 父组件通过 props 向下传递数 ...

  3. jmeter在non-GUI模式下用法

    用法 jmeter -n -t HTTPRequesttest.jmx -l testHistory/testResult.jtl -e -o testHistory/testReport 参数说明 ...

  4. jmeter的简单http接口用法

    1.  jmeter的启动:windows下的环境 进入jmeter的并目录双击启动 Mac电脑 进入bin目录找到jmeter.sh 文件 在终端执行./jmeter.sh 或者./jmeter. ...

  5. vue props 用法(转载)

    前面的话 组件接受的选项大部分与Vue实例一样,而选项props是组件中非常重要的一个选项.在 Vue 中,父子组件的关系可以总结为 props down, events up.父组件通过 props ...

  6. React-Native中props用法详解

    props就是属性,是为了描述一个组件的特征而存在的.它是父组件传递给子组件的. 使用props 通过上一个页面传递 新建一个 PropsTest.js 文件 1 2 3 4 5 exprot def ...

  7. JMeter Http请求之content-type用法

    转载自https://www.cnblogs.com/imyalost/p/6726795.html 本文讲三种content-type以及在Jmeter中对应的参数输入方式 第一部分:目前工作中涉及 ...

  8. JMeter 各组件介绍以及用法

    录制脚本 常用组件 参数化 关联

  9. Jmeter中Switch Controller逻辑控制器用法

    当Switch Controller中Switch Value设置为0时,执行第0+1个子节点:Switch Value设置为1时,执行第1+1个子节点:Switch Value设置为2时,执行第2+ ...

随机推荐

  1. HTML/CSS实现的搜索框

    谷歌和百度首页的搜索框都是<input>+<button>模式的,bing的搜索框感觉要好点儿.简言之,就是将提交按钮放到<input>中,其实这是做不到的,只能伪 ...

  2. input标签添加上disable属性在移动端字体颜色不兼容的解决办法。

    input[disabled],input:disabled,input.disabled{ color: #999; -webkit-text-fill-color:#999; -webkit-op ...

  3. 51nod1671【货物运输】

    开始天真的我以为这道题和运输计划是一样的套路.于是写了一发,debug后发现过了第一个点,十分开心的交了一发,结果只过了第一个点.后来发现这个并不是一样的,因为修建黑洞之后路径法变了,而运输计划没有( ...

  4. VC Q&A (原创)

    Q1:External Dependencies有什么作用? A1:(网友答复:)External   Dependencies是说你没有把这个文件加入到这个工程中,但是需要这个文件的支持.当然有时是 ...

  5. MySQL条件判断处理函数_20160925

    MySQL条件判断处理 一.假如我想把salesperson 分成 5组,计算每个销售分组的业绩 首先先将销售分组 SELECT *, CASE WHEN salesperson IN (" ...

  6. 【Lintcode】095.Validate Binary Search Tree

    题目: Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is define ...

  7. python script

    1.tab键自动补全(每次导入时要将脚本的路径加入到sys.path中) import sysimport readlineimport rlcompleterimport atexitimport ...

  8. 2012年浙大:Head of a Gang

    题目描述: One way that the police finds the head of a gang is to check people's phone calls. If there is ...

  9. Linux中的nc测试端口是否开放

    nc测试端口是否开放 在Linux中有一个级强大的网络工具netcat,在默认情况下面都是没有安装的,现在介绍一下安装过程 其实安装很简单 一.安装使用 1.只需输入命令yum安装: [root@SZ ...

  10. MSSQl分布式查询(转)

    MSSQlServer所谓的分布式查询(Distributed Query)是能够访问存放在同一部计算机或不同计算机上的SQL Server或不同种类的数据源, 从概念上来说分布式查询与普通查询区别 ...