JMeter BeanShell 学习
2024-10-09 19:34:35
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();
最新文章
- 【Alpha版本】冲刺阶段——Day 4
- 设置PATH变量
- Yii2 如何使用事件
- U盘文件夹被病毒隐藏,且不能取消解决办法
- 在idea中如何添加log日志
- 详细分析 javascript 的内存分配
- browsersync 浏览器自动刷新神器
- [LeetCode]题解(python):004-Median of Two Sorted Arrays
- .NET面试题系列[17] - 多线程概念(2)
- python自动化运维四:nmap端口扫描
- poj 1743
- 定时删除所有文件夹下的_desktop.ini文件
- Lodop打印控件传入css样式、看是否传入正确样式
- 【转】Spring总结以及在面试中的一些问题
- 第四篇 - 爬取前程无忧python相关工作
- activiti 选人的实现
- BZOJ 4754 [JSOI2016]独特的树叶 | 树哈希判同构
- 【Hadoop学习之二】Hadoop伪分布式安装
- 二十、MVC的WEB框架(Spring MVC)
- JavaScript中一个对象如何继承另外一个对象
热门文章
- uni 结合vuex 编写动态全局配置变量 this.baseurl
- 【大数据面试】Flink 01 概述:包含内容、层次架构、运行组件、部署模式、任务提交流程、任务调度概念、编程模型组成
- latex 中添加Springer LNCS 模板的\bibitem{}格式参考文献方法
- angr_ctf——从0学习angr(三):Hook与路径爆炸
- js迭代循环
- kali安装拼音输入法
- 用python 协程 爬百度小说西游记
- [OpenCV实战]49 对极几何与立体视觉初探
- [OpenCV实战]15 基于深度学习的目标跟踪算法GOTURN
- P7960 [NOIP2021] 报数