Jmeter中Beanshell调用java代码的3种方式
1:BeanShell控制界面介绍
- Reset bsh.Interpreter before each call 每次调用前重置bsh.Interpreter:可以选择True和False。如果此选项为True,则将为每个取样器重新创建解释器。
- Parameters to be passed to BeanShell(=>String Parameters and String[] bsh.args)传递给BeanShell脚本的参数:参数存在以下变量中,Parameters:整个参数字符串作为一个变量Parameters,bsh.args:用空格分隔的字符串被保存到变量数组bsh.args
- Script file 脚本文件:包含BeanShell脚本的文件名传给变量名FileName
2:BeanShell常用变量
log:日志对象,log.info(This is log info!);
vars:变量对象(相当于Map对象)
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: 当前取样器对象
3:在jmeter BeanShell中可以自定义类和方法,也可以调用外部已有的java文件、class 文件、jar 包
3.1 调用 java 文件
source(D:\workspace\jmeter\Sign.java); //指定目录
或source(Sign.java); //文件位于 jmeter/bin 目录下
String sign= Sign.getSign(xx);
3.2 调用 class 文件
addClassPath(D:); //可以是父级目录或者祖先级目录
import com.Sign;
String sign= Sign.getSign(xx);
3.3 调用 jar 包
需要在测试计划中导入 jar包,或者提前把jar包放入 jmeter/lib目录下并重启
import com.Sign;
String sign= Sign.getSign(xx);