${__setProperty(tk,${token_id},)};  //将token_id转为全局变量

 

${__property(tk)}//全局变量的使用。

 

 

 

//引用外部JAVA文件,放在bennshell预处理程序里(前置处理器)

 

//导入jar文件 放在JMETER安装目录\lib\ext,放进去之后是永久生效

 

也可以选择临时导入,在测试计划中导入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\n')

 

 

 

 

 

//导入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);

 

 

调试可以把调用的变量,放在请求接口的名称里面排查。

原因是:线程组没有设置为串行。测试计划里勾选 独立运行每个线程组

 

可以了,就是串行的问题。不串行,是因为可能第一个线程组不是先运行的

 

 

获取到值了

posted on 2021-06-22 18:01  彬如意  阅读(37)  评论(0编辑  收藏  举报