自我学习的beanshell

${__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);

 

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

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

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

 

获取到值了

原文地址:https://www.cnblogs.com/swiftycc/p/14919728.html