${__setProperty(tk,${token_id},)}; //将token_id转为全局变量
${__property(tk)}//全局变量的使用。
//引用外部JAVA文件,放在bennshell预处理程序里(前置处理器)
//导入jar文件 放在JMETER安装目录libext,放进去之后是永久生效
也可以选择临时导入,在测试计划中导入jar包
import MD5Util.*;
//调用方法
MD5Util test = new MD5Util();
String res = test.getMD5String("zr111111hg");
log.info("MD5---------->"+res);
vars.put("psw",res); //可以在请求里直接使用,${psw}
BeanShell是⼀种完全符合Java语法规范的脚本语⾔,并且⼜拥有⾃⼰的⼀些语法和⽅法;BeanShell是⽤Java写成的,⼀个⼩型的、免费的、可以下载的、嵌⼊式的Java源代码解释器,具有对象脚本语⾔特性,⾮常精简的解释器jar⽂件⼤⼩为175k。BeanShell执⾏标准Java语句和表达式,另外包括⼀些脚本命令和语法。1、定时器:BeanShell Timer2、前置处理器:BeanShell PreProcessor3、采样器:BeanShell Sampler4、后置处理器:BeanShell PostProcessor5、断⾔:BeanShell断⾔6、监听器:BeanShell Listener
beanshell举例
vars.put("data1","123456");//定义⼀个变量data1log.info("------------------------------>"+vars.get("data1"));//将data1输出到⽇志String test="abcde";//定义⼀个字符串log.info("--------------------------->"+test);//打印字符串log.info("-------------->"+props.get("language"));//打印jmeter.properties⽂件中的值log.info(prev.getResponseCode());//获取响应码⽣成1000条⽤户数据with open('D:/⽤户.txt','w+')as file1:for i in range(1,1000):file1.write(f'sq{i:03},123456 ')
//导入java文件
source("d:\MD5util.java");
import MD5Util;
MD5Util test = new MD5Util();
String res = test.getMD5String("zr111111hg");
log.info("MD5---------->"+res);
vars.put("psw",res);
//导入MD5Util.class
addClassPath("D:\笔记\性能班\算法文件\MD5Util.class");
import MD5Util;
MD5Util test = new MD5Util();
String res = test.getMD5String("zr111111hg");
log.info("-------->"+res);
vars.put("psw",res);
调试可以把调用的变量,放在请求接口的名称里面排查。
原因是:线程组没有设置为串行。测试计划里勾选 独立运行每个线程组
可以了,就是串行的问题。不串行,是因为可能第一个线程组不是先运行的
获取到值了