方法1 :使用jmeter自带的函数助手digest
Tool(工具)---Function Helper Dialog(函数助手对话框)
第一个参数是要md5加密的值,第二个参数是保存加密后值的变量
( 此处变量是从txt文件导入的,所以使用的是${wd} )
点击Generate & Copy to clipboard,生成如下的表达式
就是加密后的变量,可以在请求的参数中直接使用,如下:
方法二:使用beanshell PreProcessor脚本进行加密
在jmeter的lib目录下,自带commons-codec-1.11.jar(如果没有,可以到maven库下一个,下载地址:
https://mvnrepository.com/,然后放到jmeter的lib目录下),所以,可以借助apache工具类DigestUtils实现。
jmeter数据参数化
(数据来源于外部txt文件),使用CSV文件CSV Data Set Config读取外部的数据文件。
beanshell脚本
//导包
import org.apache.commons.codec.digest.DigestUtils;String wd = vars.get("wd"); //从jmeter的变量中vars获取数据
String wd_md5 ;String wd_md5 ;wd_md5 = DigestUtils.md5Hex(wd); //加密vars.put("wd_md5", wd_md5); //加密后的值放入到变量中,
引入变量
发送请求后,在查看结果树中即可看到加密后的参数
beanshell内置变量vars
vars:本质上来说。它是一个类似于HashMap的集合,所以vars是可以对数据进行存储和读取的,它所存储的数据格式为key.value
它的常用语法:
vars.get(string key):从集合里取值
vars.put(string key.string value):把变量传到集合里进行保存
ps:要注意的是vars内置变量是一个局部变量,不能跨线程使用!!!