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();

最新文章

  1. 【Alpha版本】冲刺阶段——Day 4
  2. 设置PATH变量
  3. Yii2 如何使用事件
  4. U盘文件夹被病毒隐藏,且不能取消解决办法
  5. 在idea中如何添加log日志
  6. 详细分析 javascript 的内存分配
  7. browsersync 浏览器自动刷新神器
  8. [LeetCode]题解(python):004-Median of Two Sorted Arrays
  9. .NET面试题系列[17] - 多线程概念(2)
  10. python自动化运维四:nmap端口扫描
  11. poj 1743
  12. 定时删除所有文件夹下的_desktop.ini文件
  13. Lodop打印控件传入css样式、看是否传入正确样式
  14. 【转】Spring总结以及在面试中的一些问题
  15. 第四篇 - 爬取前程无忧python相关工作
  16. activiti 选人的实现
  17. BZOJ 4754 [JSOI2016]独特的树叶 | 树哈希判同构
  18. 【Hadoop学习之二】Hadoop伪分布式安装
  19. 二十、MVC的WEB框架(Spring MVC)
  20. JavaScript中一个对象如何继承另外一个对象

热门文章

  1. uni 结合vuex 编写动态全局配置变量 this.baseurl
  2. 【大数据面试】Flink 01 概述:包含内容、层次架构、运行组件、部署模式、任务提交流程、任务调度概念、编程模型组成
  3. latex 中添加Springer LNCS 模板的\bibitem{}格式参考文献方法
  4. angr_ctf——从0学习angr(三):Hook与路径爆炸
  5. js迭代循环
  6. kali安装拼音输入法
  7. 用python 协程 爬百度小说西游记
  8. [OpenCV实战]49 对极几何与立体视觉初探
  9. [OpenCV实战]15 基于深度学习的目标跟踪算法GOTURN
  10. P7960 [NOIP2021] 报数