以下文章来源于 CSDN,作者为 Bruce 小鬼。
笔者在使用 MeterSphere 开源持续测试平台进行接口测试的过程中,经常会需要传入时间或时间戳参数。根据业务的不同需求,时间和时间戳还要满足不同的格式。
例如,传入的结束时间大于开始时间,反之结束时间小于开始时间等等。这篇文章就来介绍如何用 MeterSphere 获取特定格式和特定日期的时间,以及将时间转为时间戳的方法。
获取特定格式的时间
Step 1:在接口请求中添加前置脚本,选择默认的 BeanShell 语言。
Step 2:通过调用 SimpleDateFormat 方法,实现获取特定格式时间。
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();
获取特定日期时间
Step 1:在接口请求中添加前置脚本,选择默认的 BeanShell 语言。
Step 2:通过调用 Calendar 类提供的方法,获取指定日期。
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();
时间转为时间戳
接口测试的过程中,传递时间还是时间戳,是根据接口接收类型决定,因此需要灵活的转换时间和时间戳。
这个实例的优点是可以根据指定格式的时间转换为时间戳。
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();
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 版权协议,转载请附上原文出处链接及本声明。
原文链接: