JMeter BeanShell 学习

JMeter BeanShell 学习

Beanshell分为:

JMeter有如下BeanShell组件:

定时器:  BeanShell Timer

前置处理器:BeanShell PreProcessor

采样器:  BeanShell Sampler

后置处理器:BeanShell PostProcessor

断言:   BeanShell断言

监听器:  BeanShell Listener

JMeter内置变量

image-20230110172842009

  • 打印日志、变量信息

    #打印在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包

image-20230118095522543

第二步:在beanshell里引入jar包,并使用
import Test;
new Test().a();

posted @ 2023-01-19 17:17  没事别找我  阅读(285)  评论(0编辑  收藏  举报