Jmeter内置变量vars和props
在使用jmeter作接口测试时,有些参数并不是明文直接传递的,须编码或加密后传输。此时可以使用BeanShell取样器、BeanShell前置和后置处理器等对参数进行加工处理。
vars和props都是jmeter的内置变量,不必先定义,可以直接使用
二者本质上都是Map类型的对象,用python语言理解就是dict字典格式。
最主要的两点区别:
1.vars 只能在当前线程组使用(局部),props 可以跨线程组使用(全局) 2.vars 只能保存 String 或 Object ,props 是 Hashtable 对象
vars:👇
1)本质上是Map类型的对象,是单个线程的本地属性(局部变量),能在BeanShell里面进行赋值和取值;
2)如果要在非BeanShell里面引用变量,可以使用 ${变量名}。
-
从定义可知 vars.put("property_name", "property_value") 是存储一个新的变量名,那么property_name 就必须是字符串类型; 注意:此时HTTP请求和BeanShell取样器须在同一个线程组内。
到察看结果树中验证一下username的信息
props:👇
1)本质上是Map类型的对象,是jmeter的全局属性(全局变量),能在BeanShell里面进行赋值和取值;
2)如果要在非BeanShell里面引用变量,可以使用jmeter内置函数 ${__property(变量名)} 或 ${__P(变量名)};
到察看结果树中验证一下usernameProp的信息
3)也可以使用jmeter内置函数 ${__BeanShell(props.get("变量名"),)} 引用变量;
-
BeanShell函数 是创建了一个小型的java环境,可以直接执行一些简单的表达式,如:${__BeanShell(props.get("nameProp"),)} 注意:此时的变量名须加双引号" "括起来。
到察看结果树中验证一下usernameProp的信息
4)props 除了拥有与 vars 类似的 get 和 put 方法,另外还继承了 Hashtable 的其他方法 。
//判断某项属性是否存在,返回布尔值 props.containsKey("property_name") //判断某项值是否存在,返回布尔值 props.contains("property_value") //删除某项属性 props.remove("property_name") //所有属性以字符串形式表示 props.toString()
上一篇:
5款热门的远程控制软件,让你事半功倍
下一篇:
渗透测试-Python安全工具编程基础