1. 程式人生 > 實用技巧 >JMeter 時間函式(__time、_RandomDate、__timeShift)

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