Jmeter学习八Jmeter中的函数和BeanShell

本文详细介绍如何在JMeter中使用Beanshell预处理器对变量进行MD5加密,包括三种方式:导入jar包、添加java文件和引用外部class文件。通过实际代码示例,展示如何在Beanshell中调用自定义的MD5加密方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数格式:KaTeX parse error: Expected group after '_' at position 2: {_̲_functionName(v…{__threadNum}
BeanShell
通过代码来改变执行过程中变量的值,beanshell有自己定义好的变量如vars,log,props等
在这里插入图片描述
1.beanshell提供脚本jar包导入的功能,source导入java文件
2.addClassPath导入class文件

简单举个例子:用beanshell给变量加密
java代码实现给一个字符串进行md5加密

import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5UtilsJmeter {
	public static String md5(String plainText) {
		byte[] secretBytes = null;
		try {
			MessageDigest md = MessageDigest.getInstance("MD5");
			md.update(plainText.getBytes());
			secretBytes = md.digest();
		} catch (NoSuchAlgorithmException e) {
			throw new RuntimeException("没有md5这个算法!");
		}
		String md5code = new BigInteger(1, secretBytes).toString(16);// 16进制数字
		for (int i = 0; i < 32 - md5code.length(); i++) {
			md5code = "0" + md5code;
		}
		return md5code;
	}
}

将打包出来的jar包导入jmeter/lib/ext文件夹中
在beanshell中调用即可

import com.jmeter.utils.*;

//加密
System.out.println("****加密****");
String string = "123";
String secretstring = MD5UtilsJmeter.md5(string);
vars.put("string",secretstring);
String getEncode = vars.get("string");
System.out.println("Get my encode: "+getEncode);

这里是直接导入jar包到jmeter/lib/ext文件夹中,主要注意的是import的时候注意引入的是包中具体的类名,加点*或者加具体类名。

import com.jmeter.utils.*;
//加密
System.out.println("****加密****");
String string = "123";
String secretstring = MD5UtilsJmeter.md5(string);
vars.put("string",secretstring);
String getEncode = vars.get("string");
System.out.println("Get my encode: "+getEncode);

另外说个其他方式
添加java文件
在IDE中直接将java文件复制出来保存到某个位置文件是MD5UtilsJmeter.java,放到D盘中
直接在beanshell脚本中把原来的import换成source(“D:\MD5UtilsJmeter.java”);即可。

source("D:\\MD5UtilsJmeter.java");
//加密
System.out.println("****加密****");
String string = "1234";
String secretstring = MD5UtilsJmeter.md5(string);
vars.put("string",secretstring);
String getEncode = vars.get("string");
System.out.println("Get my encode: "+getEncode);

引用外部class文件
现在知道如何引用外部文件,有时候如果我们只有class文件怎么办呢?其实在jmeter中也可以直接引用class文件,示例如下:
首先我们要有class文件
在cmd控制台执行javac命令 + java文件的绝对路径,就会在该路径下生成一个class文件
用addClassPath(“D:\”)方法引入 class文件,在用import导入包及类,然后就可以像java一样调用了

addClassPath("D:\\JmeterBeanshellClassTest");
import com.jmeter.utils.MD5UtilsJmeter;
//加密
System.out.println("****加密****");
String string = "1234";
String secretstring = MD5UtilsJmeter.md5(string);
vars.put("string",secretstring);
String getEncode = vars.get("string");
System.out.println("Get my encode: "+getEncode);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值