使用beanshell取样器调试
一. jmeter存储变量方式
vars存取jmeter变量,不能跨线程 ${全局变量名}
props存取jmeter变量,可跨线程;{__P(全局变量名,)}
prev获取响应码,响应值
二. 引入java文件
1.新建D:\apache-jmeter-5.5\dependencies引入jar包
jmeter.properties写入: plugin_dependency_paths=../dependencies/;
3.直接写代码
注意点:变量存储要双引号,加分号
source("D:\\javaWorkspace\\Demo\\src\\Rsa.java");
Rsa rsa = new Rsa();
String password = rsa.encrypt();
props.put("password",password);
log.info(props.get("password"));
全局变量引用:${__P(password,)}
三. 直接写代码,JSR223-Groovy
JSR223-Groovy代码不需要像 Java 一样提供完整的类定义,可以直接编写函数体
Util类、Constants类打成jar,放在dependencies,直接在类中import 类名
java先打class再打jar包:javac Contsants.java;jar cvf contsants.jar Contsants.class
import java.math.BigInteger;
import java.security.SecureRandom;
import Constants;
public static String A(byte[] b) {
...
}
public String encrypt() {
...
return publickey ;
}
encrypt();
四. 直接写代码,BeanShell
Util类、Constants类打成jar,放在dependencies,直接在类中import 类名
import java.math.BigInteger;
import java.security.SecureRandom;
import Constants;
public class Test {
log.info("---------------------执行byteToHex-------------------");
public static String A(byte[] b) {
...
}
public String encrypt(){
...
return publickey ;
}
}
log.info("-----------new Test------------");
Test test=new Test();
log.info("-----------调用encrypt------------");
String publickey = test.encrypt();
vars.put("publickey",publickey);
log.info(publickey);
1046

被折叠的 条评论
为什么被折叠?



