JMeter笔记十四:BeanShell取样器

Beanshell在jmeter中有着广泛的应用,这里简单了解下BeanShell。

BeanShell简单介绍

1、BeanShell特点:

  • 是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法;
  • 是一种松散类型的脚本语言(这点和JS类似);
  • 是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性,非常精简的解释器jar文件大小为175k。
  • 执行标准Java语句和表达式,另外包括一些脚本命令和语法。

2、JMeter常用Beanshell:

  • 前置处理器:Beanshell预处理程序
  • 采样器:Beanshell取样器
  • 后置处理器: Beanshell后置处理程序
  • 断言:Beanshell断言
3、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、运行结果如下:

posted @   阳光倾林  阅读(6614)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示