[TOC]
自带函数
time 获取时间
时间规则:年 = yyyy, 月=MM,日=dd,小时=HH,分钟=mm,秒=ss
格式简写:
YMD = yyyyMMdd
HMS = HHmmss
YMDHMS = yyyMMD-HHmmss
示范
获取13位时间戳(毫秒级): ${__time(,)}
获取10位时间戳(秒级):$(__time(/1000,))
生成知道格式时间:时间格式:yyyy-MM-dd HH:mm:ss = = ${__time(yyyy-MM-dd HH:mm:ss,)},获取当前时间
timeShift 时间位移,指定过去或将来时间
显示格式为yyyyMMdd,时间基准20200420,向后推移2天:
显示格式为时间戳(毫秒级),时间基准为当前时间,向后推移10分钟
${__timeShift(,,PT10M,,)}
显示格式为 yyyy/MM/dd HH:mm:ss,时间基准为 2020/04/17 17:38:00,向后推迟 10分20秒
${__timeShift(yyyy/MM/dd HH:mm:ss,2020/04/17 17:38:00,PT10M20S,,)}
Random 生成随机数
${__Random}
一种是利用【__Random】函数(生成的随机数不唯一,可能会重复)
UUID 生成唯一随机数
${__UUID}
digest 获取MD5,SHA的结果
BeanShell PreProcessor
BeanShell是一个小型嵌入式Java源代码解释器,具有对象脚本语言特性,能够动态地执行标准JAVA语法,并利用在JavaScript和Perl中常见的的松散类型、命令、闭包等通用脚本来对其进行拓展。BeanShell不仅仅可以通过运行其内部的脚本来处理Java应用程序,还可以在运行过程中动态执行你java应用程序执行java代码。因为BeanShell是用java写的,运行在同一个虚拟机的应用程序,因此可以自由地引用对象脚本并返回结果。
参数描述
| 属性 | 描述 |
| 名称 | 该元件的描述性名称,用于在测试树种标识元件。 |
| Reset bsh.Interpreter before each call | 如果设置该选项,那么就会为每个采样器重新创建解释器。 |
| Parameters to be passed to Bean Shell | 传递给BeanShell脚本的参数。参数存在于如下变量表中:
1)String Parameters:包含有参数的字符串,作为单个变量存在
2)String []bsh.args:包含有参数的字符串数组,以空格作为间隔 |
| Script file | 一个文件,其中包含有待运行的BeanShell脚本 |
| Script |
BeanShell脚本。返回值将被忽略。
|
常用内置方法
log: 输出到日志文件,写入bin/jmeter.log文件,使用方法:log.info("hello, jin")
-
vars: 方法jmeter变量,提供获取/定义变量的方法
vars.get("user_id"): 从jmeter获取user_id的变量值
vars.put("req": value): 把value的值定义到jmeter变量req中
自带commons-codes.jar包做md5
示范:获取用户密码,对它做32位的md5加密并注入到jmeter命令seq中
import org.apache.commons.codec.digest.DigestUtils;
String pwd = vars.get("user_passwd");
String pwd_md5 = DigestUtils.md5Hex(pwd);
log.info("pwd_md5:{}",pwd_md5);
vars.put("seq",pwd_md5);
参考资料: