不愿意做出改变 ≈ 坐吃等死!!

Jmeter获取时间脚本

上一篇 / 下一篇  2017-06-02 17:43:36 / 个人分类:Jmeter

背景:当调用某些接口传入参数时,或者请求数据库传入时间参数时,需要传入的时间是动态的。如何完成呢?

解决办法:
1.添加Bean Shell PreProcessor
2.脚本填写下述内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import java.util.*; 
 
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //设置时间格式
 
//今天 
//Calendar cal=Calendar.getInstance();
Date d= new Date();
String s= sdf.format(d);    //格式化
vars.put("current_date", s);
 
//一年前
Calendar cal1=Calendar.getInstance();
cal1.setTime(d);
cal1.add(Calendar.MONTH, -12); // 月份 +是往后推 -是向前推
t2=cal1.getTime();
String s2= sdf.format(t2);    //格式化
vars.put("One_Year_Ago", s2);
 
//一年零一天前
Calendar cal2=Calendar.getInstance();
cal2.setTime(d);
cal2.add(Calendar.MONTH, -12); // 月份 +是往后推 -是向前推
cal2.add(Calendar.DATE, -1); // 日  +是往后推 -是向前推
t3=cal2.getTime();
String s3= sdf.format(t3);    //格式化
vars.put("One_Year_Ago_beforeoneday", s3);
 
//18个月前
Calendar cal3=Calendar.getInstance();
cal3.setTime(d);
cal3.add(Calendar.MONTH, -18); // 月份 +是往后推 -是向前推
t4=cal3.getTime();
String s4= sdf.format(t4);    //格式化
vars.put("Eighteen_Month_Ago", s4);
 
//18个月零一天前
Calendar cal4=Calendar.getInstance();
cal4.setTime(d);
cal4.add(Calendar.MONTH, -18); // 月份 +是往后推 -是向前推
cal4.add(Calendar.DATE, -1); // 日  +是往后推 -是向前推
t5=cal4.getTime();
String s5= sdf.format(t5);    //格式化
vars.put("Eighteen_Month_Ago_beforeoneday", s5);

3. 然后在需要使用动态参数的地方传入${current_date} 即可

因为jmeter是纯java开发,完全兼容java脚本,所以有java基础的童鞋一看便知晓,不明白的童鞋可以多用多想。

欢迎交流。

TAG: jmeter获取时间 jmeter脚本

 

评分:0

我来说两句

Open Toolbar