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

发布于 2021年09月09日

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

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

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

获取特定格式的时间

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

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

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

2. 获取特定时间格式源码

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类提供的方法,获取指定日期。

2. 获取指定日期源代码

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. 时间转时间戳实例

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

2. 时间转时间戳源代码

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

3. 指定日期转换时间戳

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