JMeter BeanShell 学习
JMeter BeanShell 学习
Beanshell分为:
JMeter有如下BeanShell组件:
定时器: BeanShell Timer
前置处理器:BeanShell PreProcessor
采样器: BeanShell Sampler
后置处理器:BeanShell PostProcessor
断言: BeanShell断言
监听器: BeanShell Listener
JMeter内置变量
-
打印日志、变量信息
#打印在JMeter的控制台 log.info("日志信息") log.info(变量名称) log.error("打印错误信息") #打印信息在JMeter的cmd System.out.println("lajjj")
-
prev-(SampleResult):获取采样器响应的信息
//获取响应信息 prev.getResponseDataAsString() //获取请求的数据 prev.getSamplerData() //获取响应body大小 prev.getBodySize() //获取此次耗时 prev.getTime() //设置编码格式 prev.setDataEncoding("utf-8")
-
vars(JMeterVariables)用于操作jmeter变量,只能在同一个线程组中使用(局部变量)
//获取变量的值 vars.get("String key") //将数据存储到变量中 vars.put("String key","String value")
-
props:可以跨线程组使用(全局变量)
//跨线程组使用变量的方式 //第一种:使用props和函数P //线程组1:beanshell中写 String cookie=vars.get("COOKIE_JSESSIONID"); props.put("Cookie",cookie); //在线程组2中使用,使用函数助手P,然后引用 ${__P(Cookie,)
//第二种:将全局变量转化为局部变量 //线程组1:beanshell中写 String cookie=vars.get("COOKIE_JSESSIONID"); props.put("Cookie",cookie); //线程组2:beanshell取样器中写 String cookie = props.get("Cookie"); vars.put("Cookie",cookie);
beanshell引入java的方式
第一种:直接写
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
public Date randomDate() throws ParseException {
Random rndYear = new Random();
int year = rndYear.nextInt(1) + 2023; //生成[2023]的整数;年
Random rndMonth = new Random();
int month = rndMonth.nextInt(12) + 1; //生成[1,12]的整数;月
Random rndDay = new Random();
int Day = rndDay.nextInt(30) + 1; //生成[1,30)的整数;日
Random rndHour = new Random();
String strDate=year + "-" + month + "-" + Day;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date parse = df.parse(strDate);
return parse;
}
public void a() throws ParseException {
//会议时间
Date sd1 = randomDate();
//会议报名截至时间
Date sd2 = randomDate();
//System.out.println(enrollEndDate);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(sd1);
System.out.println(sd2);
if ((sd1.before(sd2)) == true){
a();
}else{
String sd3=df.format(sd1);
String sd4=df.format(sd2);
vars.put("conferenceDate",sd3);
vars.put("enrollEndDate",sd4);
System.out.println(sd3);
System.out.println(sd4);
}
}
a();
第二种:java文件
//通过source进行导入java文件
source("D:\\RuoYi-Vue-master\\test\\src\\Test.java");
new Test().a();
第三种:class文件
第四种:jar包
第一步:在测试计划里导入jar包
第二步:在beanshell里引入jar包,并使用
import Test;
new Test().a();