beanshell
beanshell是一种完全符合Java语法规则的脚本语言,同时它又有自己的语法规则,两者相辅相成,结合使用
beanshell定义变量
变量定义通java语言:变量类型 变量名称=变量名
例如:
String name= “darly”;
beanshell输出语句
- Jmeter日志默认存放在%JMeter_HOME%\bil\JMeter.log, 脚本中使用log.info("")
打印需要的日志信息 - JMeter里面点击右上角可以打开日志窗口
log.info(“kajlkdfjlakjaflkjflka”)——输出常量
log.info(name);——输出beanshell定义的变量
log.info(${name});——输出Jmeter定义的变量
log输出4个级别:
log.debug("");
log.info("");
log.warn("");
log.error("");
Jmeter可以为不同的模块设置不同的日志级别
参考:Jmeter—BeanShell 常用的 vars, get, props, put ,log用法
输出到运行界面——System.out.pringln()
System.out.println(${name});
System.out.pringln(name);
可以通过 jmeter.bat来启动jmeter,此时启动jmeter的UI界面的同时,还会启动控制台,这样就可以在控制台上看到上面命令的输出。
Jmeter变量
Jmeter变量一般仅作用于当前线程组
Jmeter全局静态变量:可以作用于所有的线程组,如果需要跨线程组使用则需要设置全局静态变量(在Jmeter安装路径的bin目录下jmeter.properties文件就是Jmeter全局静态变量)
beanshell 内置变量
能够和Jmeter组件进行交互的变量
常用的内资变量包括: log vars props prev ctx等;
vars
- vars: Jmeter Variables 用于操作Jmeter变量
- vars 只能在当前线程内使用,props 可以跨线程租使用
- vars 只能保持String 或者Objec, props 是 Hashtable 对象
vars.get(“Jmeter已存在变量名”)
String varsname=vars.get("Jmeter已存在变量名")
//例如:
String varsname=vars.get("appkey")
vars.getObject
vars.getObject("OBJECT_NAME");
vars.put()
将beashell变量设置为Jmeter变量
vars.put (“Jmeterparam”,beashellparam)
上面的“Jmeterparam”必须是字符串类型, 传递其他类型,包括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.putObject
vars保存对象类型 (包括 List、Map、Closure 之类),使用如下方法
vars.putObject("OBJECT_NAME", Object);
例如:
vars.putObject("NUMBER", 1);
vars.putObject("ARRAY", []);