MeterSphere MeterSphere 获取任意时间格式进行时间与时间戳互转

MeterSphere · 2021年09月10日 · 最后由 yiwang 回复于 2021年09月10日 · 2076 次阅读

以下文章来源于 CSDN,作者为 Bruce 小鬼。

笔者在使用 MeterSphere 开源持续测试平台进行接口测试的过程中,经常会需要传入时间或时间戳参数。根据业务的不同需求,时间和时间戳还要满足不同的格式。

例如,传入的结束时间大于开始时间,反之结束时间小于开始时间等等。这篇文章就来介绍如何用 MeterSphere 获取特定格式和特定日期的时间,以及将时间转为时间戳的方法。

获取特定格式的时间

  1. 获取特定格式时间实例

Step 1:在接口请求中添加前置脚本,选择默认的 BeanShell 语言。

Step 2:通过调用 SimpleDateFormat 方法,实现获取特定格式时间。

  1. 获取特定时间格式源码
import java.util.*;
import java.text.SimpleDateFormat;

public static void getFormDate() {
    String val = (new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss-SSS")).format(new Date());
    log.info("当前日期:"+ val);
    vars.put("formDate", val);
}

getFormDate();

获取特定日期时间

  1. 获取指定日期实例

Step 1:在接口请求中添加前置脚本,选择默认的 BeanShell 语言。

Step 2:通过调用 Calendar 类提供的方法,获取指定日期。

  1. 获取指定日期源代码
import java.util.*;
import java.text.SimpleDateFormat;

public static void getFormDate() {
    String form = "yyyy-MM-dd-hh-mm-ss-SSS";

    String dt = (new SimpleDateFormat(form)).format(new Date());

    SimpleDateFormat sdf = new SimpleDateFormat(form);
    // 获取日历对象
    Calendar calendar = Calendar.getInstance();
    // 当前日期赋给日历
  calendar.setTime(sdf.parse(dt));

    // 当前日期加一天
  calendar.add(Calendar.DAY_OF_MONTH, +1);
    // 输出日期
  String val = sdf.format(calendar.getTime()); 
    log.info("当前日期加一天:"+ val);
    vars.put("date", val);

    // 当前日期减一天
  calendar.add(Calendar.DAY_OF_MONTH, -1);
    // 输出日期
  String val = sdf.format(calendar.getTime()); 
    log.info("当前日期减一天:"+ val);
    vars.put("date", val);

    // 当前日期加一个月
  calendar.add(Calendar.MONTH, +1);
    // 输出日期
  String val = sdf.format(calendar.getTime()); 
    log.info("当前日期加一个月:"+ val);
    vars.put("date", val);

    // 当前日期减一个月
  calendar.add(Calendar.MONTH, -1);
    // 输出日期
  String val = sdf.format(calendar.getTime()); 
    log.info("当前日期减一个月:"+ val);
    vars.put("date", val);

    // 当前日期加一个小时
  calendar.add(Calendar.HOUR_OF_DAY, +1);
    // 输出日期
  String val = sdf.format(calendar.getTime()); 
    log.info("当前日期加一个小时:"+ val);
    vars.put("date", val);

    // 当前日期减一个小时
  calendar.add(Calendar.HOUR_OF_DAY, -1);
    // 输出日期
  String val = sdf.format(calendar.getTime()); 
    log.info("当前日期减一个小时:"+ val);
    vars.put("date", val);
}

getFormDate();

时间转为时间戳

接口测试的过程中,传递时间还是时间戳,是根据接口接收类型决定,因此需要灵活的转换时间和时间戳。

  1. 时间转时间戳实例

这个实例的优点是可以根据指定格式的时间转换为时间戳。

  1. 时间转时间戳源代码
import java.util.*;
import java.text.SimpleDateFormat;

public static void getFormDate() {
    // 根据需求转换指定时间格式的时间戳
    String form = "yyyy-MM-dd-hh-mm-ss-SSS";

    String dt = (new SimpleDateFormat(form)).format(new Date());
    SimpleDateFormat sdf = new SimpleDateFormat(form);
    String val = String.valueOf(sdf.parse(dt).getTime()/1000);

    log.info("时间转时间戳:"+ val);
    vars.put("date", val);
}

getFormDate();
  1. 指定日期转换时间戳
import java.util.*;
import java.text.SimpleDateFormat;

public static void getName() {
    String form = "yyyy-MM-dd-hh-mm-ss-SSS";
    String dt = (new SimpleDateFormat(form)).format(new Date());
    SimpleDateFormat sdf = new SimpleDateFormat(form);
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(sdf.parse(dt));
    //当前日期加一天转为时间戳
    calendar.add(Calendar.DAY_OF_MONTH, +1);
    String cl = sdf.format(calendar.getTime()); 
    String val = String.valueOf(sdf.parse(cl).getTime()/1000);

    log.info("结束日期:"+ val);
    vars.put("endTime", val);
}

getName();

版权声明:本文为 CSDN 博主「Bruce 小鬼」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:

https://brucelong.blog.csdn.net/article/details/115010690

共收到 1 条回复 时间 点赞

直接使用 ${__timeShift(,,P1d,,)}函数就行了啊。。。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册