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);