JMeter笔记十四:BeanShell取样器
Beanshell在jmeter中有着广泛的应用,这里简单了解下BeanShell。
BeanShell简单介绍
1、BeanShell特点:
- 是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法;
- 是一种松散类型的脚本语言(这点和JS类似);
- 是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性,非常精简的解释器jar文件大小为175k。
- 执行标准Java语句和表达式,另外包括一些脚本命令和语法。
2、JMeter常用Beanshell:
-
前置处理器:Beanshell预处理程序
-
采样器:Beanshell取样器
-
后置处理器: Beanshell后置处理程序
-
断言:Beanshell断言
- log:写日志到控制台和jmeter.log,如log.info("×××");
- vars:操作jmeter变量
- vars.get("id");从jmeter中获取${id}变量的值
- vars.put("name","test");将test保存到${name}变量中
- prev:获取前面sampler返回的信息
- getResponseDataAsString():获取响应信息
- getResponseCode():获取响应code
- Failure:是否失败,boolean类型
- FailureMessage:失败日志,在断言失败时显示
一、在Beanshell面板直接写脚本
下面我们通过一个简单的例子来了解下
1、通过配置元件“用户定义的变量”,添加两个变量,分别是aa=“aa”,bb="bb",如下图:
2、添加Beanshell取样器,并写一个简单的小功能,实现将“hello,”+aa的值赋值给变量bb:
public static void test(){ String input; input=vars.get("aa"); String output = "hello,"+input; vars.put("bb",output); } test();
3、在Beanshell之前和之后分别添加取样器,添加监听器-查看结果树,运行查看执行结果
二、引用外部java源文件
还是用上面的例子,简单了解下用java文件如何实现Beanshell
1、用ecplise编写java文件如下:
public class BeanshellMethod { public static String test(String input) { String output ="Hello,"+input; return output; } }
2、编写Beanshell取样器脚本如下:
source("D:/software/apache-jmeter-5.1.1/bin/test_beanshell/BeanshellMethod.java"); //java文件地址 String input=vars.get("aa"); String output = new BeanshellMethod().test(input); vars.put("bb",output);
3、运行结果如下:
三、应用class文件
1、再上一个例子的基础上,进入java文件所在目录,执行javac xxx.java,生成xxx.class文件如下图:
2、编写Beanshell取样器脚本如下:
addClassPath("D:/software/apache-jmeter-5.1.1/bin/test_beanshell"); //指定class文件路径
import BeanshellMethod; //导入BeanshellMethod方法
String input=vars.get("aa");
String output = new BeanshellMethod().test(input);
vars.put("bb",output);
3、运行结果如下:
四、调用jar包
1、继续使用第一个例子,进入ecplise,将java文件导出jar包,并将导出的jar包放置到D:\software\apache-jmeter-5.1.1\lib\ext路径下。这里需要注意下的是,需要重启下jmeter。
2、编写beanshell脚本如下:
import BeanshellMethod; // String input=vars.get("aa"); String output = new BeanshellMethod().test(input); vars.put("bb",output);
3、运行结果如下: