jmeter中 BeanShell Sampler的使用

本文介绍了如何利用jmeter的BeanShell Sampler插件编写脚本,以实现为学生安排课程。首先,获取当前时间后一天18:00开始、18:40结束的课程时间,然后修改为当前时间后2分钟开始、5分钟后结束。步骤包括创建线程组、导入jar包、编写脚本、设置参数、添加HTTP请求、进行参数关联等,最终成功完成课程时间的调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过jmeter

需要给学生排一节当前时间后一天18点的课程,之后将该课程的时间改为当前时候后2分钟开课,5分钟后结束

使用jmeter,BeanShell Sampler插件(编写脚本)

第一步:编写脚本来获取当前时间后一天的开始时间和当前时候后2分钟的时间,5分钟的时间

脚本如下:

 

package time.com.cn;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class NowTime {
    static SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    //开课时间
    public static String  StartTime(){

        Date date = new Date();
        //输出格式为:2018-09-23 19:46:59
        String starttimes= sdf1.format(getStartTime(date));
        //System.out.println("time="+starttimes);
        //将String转化为Date格式
        Date STime = dateTime(starttimes);
        //将该时间段的date类型转换为时间戳
        long timestart = STime.getTime();
        //将时间戳转化为String
        String Onetime = String.valueOf(timestart);
       System.out.println(Onetime);


        return  Onetime;
    }


    //下课时间
    public static String  EndTime(){

        Date date = new Date();
        String endtimes= sdf1.format(getendTime(date));
        //System.out.println("time="+endtimes);
        Date ETime = dateTime(endtimes);
        //System.out.println("time="+ETime);
        long timeend = ETime.getTime();
        String Secondtime = String.valueOf(timeend);
        System.out.println(Secondtime);

        return  Secondtime;
    }




   //获取当前时间后2分钟时间
    public static Date getStartTime(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.MINUTE, 2);
        date = calendar.getTime();
        return date;

    }

    //获取当前时间后5分钟时间
    public static Date getendTime(Date date){
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.MINUTE,5);
        date = calendar.getTime();
        return  date;


    }

    public static Date dateTime(String date) {

        Date strTime = null;
        try {
            strTime = sdf1.parse(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        //System.out.println("timethree = " + timethree);
        //System.out.println("startTime1 = " + startTime.getTime());

        return strTime;
    }

    public static void main(String[] agrs){
        String start = StartTime();
        String end = EndTime();


    }




}


 

打开jmeter创建线程组

 

  1. 导入打好的jar包,图中是我存放jar的地址(根据自己的习惯存放jar位置)

2,创建线程组和BeanShell Sampler

3,在脚本中我们得到的时间时当前时间后一天的开始时间,即xxxx年xx月xx日 00:00:00

而我们需要的时间时xxxx年xx月xx日 18:00:00作为开始时间,xxxx年xx月xx日 18:40:00作为结束时间,所以在BeanShell Sampler写入代码(如图),使用put()方法提交参数

4,添加http请求

 

5,填写需要的数据,写入在BeanShell Sampler中定义的开始,结束时间变量

6,添加信息头管理器

7,填写察看结果树并运行

这样就创建了一个当前时候后一天18:00:00开课,18:40:00下课的课程

下一步将这个课程的时间改为当前时间后2分钟开课,5分钟后下课

 

8,还是添加BeanShell Sampler

9,添加http请求和信息头管理器

应为接口中用到了参数roomid,这个参数就是第7步中响应结果中数据

如何获取这个数据,这里需要用到参数关联,我们使用正则表达式来提取这个参数

如图:

10,再次运行脚本

成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值