阅读文本大概需要3分钟。
0x01:BeanShell控制界面介绍
- 每次调用前重置bsh.Interpreter:可以选择True和False。如果此选项为True,则将为每个取样器重新创建解释器。
- 传递给Bean Shell的参数(=>String Parametersand String[] bsh.args):传递给BeanShell脚本的参数,参数存在以下变量中。
- Parameters:整个参数字符串作为一个变量Parameters
- bsh.args:用空格分隔的字符串被保存到变量数组bsh.args
- 文件名:包含BeanShell脚本的文件,文件名存在变量FileName中。
0x02:BeanShell常用变量
- log :用于打印日志
log.info("This is log info!");
- vars: 对变量进行读写操作
vars.get(key);
vars.put(key, val);
vars.putObject(“user”,new UserDto());
- props: 直接访问及修改Jmeter的属性
props.get("START.HMS");
props.get("START.YMD"); //获取属性 START.YMD 的值(脚本启动日期)
props.get("log_level.jmeter");
props.put("customProp","1234");
props.put("log_level.jmeter","ERROR");
- ctx: 访问上下文
- prev: 访问之前取样器的结果
- sampler: 访问当前取样器
0x03:在jmeter BeanShell中可以自定义类和方法,也可以调用外部已有的java文件、class 文件、jar 包
- 调用 java 文件
语法:
source(" java文件路径")
其中文件路径可以使用绝对路径,也可以使用相对路径。
示例:
source("D:\workspace\jmeter\src\jmeter\RsaUtil.java");
或者
source("RsaUtil.java"); //文件位于jmeter bin目录下
String password= RsaUtil.encrpty("keeplovejava");
- 调用 class 文件
语法:
addClassPath("class文件所在目录");
import 类名;
示例:
addClassPath("D:"); //可以是父级目录或者祖先级目录
import com.RsaUtil;
String password= RsaUtil.encrpty("keeplovejava");
引入class文件的path路径跟引入java文件不同,对比如下:
source("D:\workspace\jemter\src\jmeter\RsaUtil.java"); //使用绝对路径时必须要指定文件的完整路径。
addClassPath("D:"); //class文件只要在D盘中就可以,不一定在D盘根目录中,不用指定完整路径。
- 调用 jar 包
用法:
在测试计划中导入 jar包,或者提前把jar包放入 jmeter lib目录下并重启
import 类名;
示例:
import com.RsaUtil;
String password= RsaUtil.encrpty("keeplovejava");
关注我每天进步一点点