JMeter 時間函式(__time、_RandomDate、__timeShift)
轉載https://www.cnblogs.com/scholars-xian/p/11697297.html
JMeter 時間函式
__time:以各種格式返回當前時間(JMeter 2.2+)
${__time(格式,變數名)}
格式:要傳遞給 SimpleDateFormat 的格式,如果省略了格式字串,則該函式返回自紀元以來的當前時間(以毫秒為單位)。如果格式匹配 “/ddd”(其中 ddd 是十進位制數字),則該函式返回以毫秒為單位的當前時間除以 ddd 的值。
變數名:要設定的變數名稱
${__time(,)} 返回當前時間戳(毫秒級,13位)
${__time(/1000,)} 返回當前時間戳(秒級,10位)
${__time(yyyy-MM-dd,)} 以 yyyy-MM-dd 格式返回當前日期(如:2019-10-23)
${__time(yyyy-MM-dd HH:mm:ss:SSS,time)} 以 yyyy-MM-dd HH:mm:ss:SSS 格式返回當前時間(如:2019-10-23 20:08:528),其他元件中可以用 ${time} 引用
__timeShift:返回各種格式的日期,並新增指定的秒數,分鐘數,小時數,天數或月數(JMeter 3.3+)
${__time(格式,日期,位移,區域設定,變數名)}
日期:以第一個引數“格式”設定的格式轉換指定日期,如果省略,則日期設定為現在。
位移:根據文字表示的持續時間(如PnDTnHnMn.nS)轉換成指定的秒數,分鐘數,小時數或天數。
區域設定:語言環境的字串格式。語言程式碼必須是小寫,國家程式碼必須大寫,分隔符必須是下劃線(如:en_EN)。如果省略,則預設情況下該函式使用 Apache JMeter 當前語言環境。(參考:https://www.oracle.com/technetwork/java/javase/javase7locales-334809.html)
${__timeShift(yyyy-MM-dd HH:mm:ss,,PT20.345S,,)} 以指定格式建立當前日期,再加上20.345S
${__timeShift(yyyy-MM-dd HH:mm:ss,now,P1DT3H4M,,c2)} 以指定格式建立當前日期,再加上1天3小時4分鐘
${__timeShift(yyyy-MM-dd,,P-1D,,)} 以指定格式建立當前日期,再減去1天
${__timeShift(yyyy/MM/dd,,P-365D,,)} 以指定格式建立當前日期,再減去365天
${__timeShift(y MMM dd HH:mm:ss,,-P-6H+3M,fr_FR,)} 以法語顯示的指定格式建立當前日期,再加上6小時減去3分鐘
${__timeShift(yyyy-M-dd,2019-5-21,P365D,,)} 在2019-5-21的基礎上加上365天
__RandomDate:在指定日期範圍內生成隨機日期(JMeter 3.3+)
${__RandomDate(時間格式,開始日期,結束日期,區域設定,變數名)}
開始日期:預設為當前日期
結束日期:必填項
${__RandomDate(,,2020-01-01,,)} 今天到2020-01-01之間的一個日期
${__RandomDate(yyyyMMdd,20190101,20201231,,time)} 返回20190101到20201231之間的一個日期,儲存到變數time
BeanShell PreProcessor
import java.text.*;
import java.util.Date;
Date currentTime = new Date();
SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat formatter2 = new SimpleDateFormat("HH:mm:ss");
String dateString1 = formatter1.format(currentTime);
String dateString2 = formatter2.format(currentTime);
String dateString = dateString1+" "+dateString2;
vars.put("Date",dateString);
log.info("當前時間為:"+dateString);