一、什么是Bean shell以及实际工作应用场景
bean shell是一种符合java语法的脚本语言,同时它也有自己的语法和方法。
工作应用场景:
1.需要做复杂的逻辑或者业务场景的判断,可以引用开发编写好的jar包实现功能。
2.数据库断言。
3.跨线程组共享变量。
jmeter中的Beanshell类型。
取样器beanshell //可以在后面添加beanshell元件搭配prev语句搭配使用,打印log进行调试;prev语法见下文。
前置处理器beanshell
后置处理器beanshell
定时器beanshell
断言beanshell
监听器beanshell
二、Bean Shell它自己的语法和方法
--主要每句后加英文分号代表语句结束,否则会报语法错误
1.log打印日志
信息日志
错误日志:
控制台日志:
//打印信息日志
log.info("这是我的第一个beanshell脚本");
log.error("这是一条报错的日志");
System.out.println("控制台日志");
2.vars全称为JmeterVariables,表示jmeter变量。 //vars的变量作用域在同一线程组,不可跨线程组
vars.put(key,value); 存储一个变量
vars.get(key); 获得一个变量
//jmeter变量
vars.put(key,value);
log.info(vars.put(key,value));
3.props用于存取jmeter全部变量(属性),这个全局变量是可以跨线程组的。 //用法同vars
props.put(key,value); 存储一个变量
props.get(key); 获得一个变量
4.prev获取前面的取样器返回的数据
//获取到第一个接口的返回码和返回数据
log.info(prev.getResponseCode())
log.info(prev.getResponseDataAsString())
三、Bean shell常用场景之引用java文件。
beanshell 调用java文件中的方法,
//在beanshell里面调用MyClass. java文件中的方法。
//引入java文件
source("E:\\MyClass.java"); //E:\\MyClass.java为本地的java文件
//直接调用MyC1ass.java中的类生成对象,并且通过这个对象调用里面的方法
int he = new Myclass(.sum (10,20);
//打印
log.info("---------:"+he);
beanshell调用jar文件中的方法。
方式一:jemeter如何引入jar文件
首先在测试计划--最下面有添加目录或jar包到ClassPass--点击浏览,找到要引用的jar包导入
//在beanshell里面调用MyClass.jar包中的方法。
//导入java文件。
import common.Myclass; //common.Myclass详解:common是包名,Myclass是类名
//直接调用MyClass.jar中的类生成对象,并且通过这个对象调用里面的方法
int he = new MyClass().sum(10,20);
//打印
log.info("-------:"+he)
方式二:把jar文件放到jmeter/lib/ext目录下。重启jmeter即可使用beanshell封装import调用jar包内的方法
四、其他操作
自定义函数
调用外部class文件
加密方法
精通Jmeter:懂一些java语法
精通postman:懂一些javascript语法
五、Jmeter其他实用小技巧:
1.调试取样器(取样器--Debug Sampler)的结果是可以直接在查看结果树里查看的
2.调试取样器和beanshell取样器的结果都可以在后面使用beanshell语句进行处理。//取样器要在线程组添加