在實際的接口用例測試中,有些接口是需要輸入當前時間的,而且格式各異,那么有沒有方法可以直接獲取時間呢?有的,Jmeter提供了time函數來達成這一點,如下,打開函數助手,找到__time這個函數,可以看到該函數有兩個參數,即格式和參數名稱,兩者都不是必填項,
- 格式:非必填項,格式如果不填那么就是默認獲取當前時間的毫秒數(此項也常被用於接口參數中那些不允許重復的字段);
- 參數名稱:非必填項,如果填了,則生成的時間會被放到該參數中,可以在任意地方調用這個參數,常用於多接口中某個值使用同一個時間參數的情況;
說明圖如下所示,在第二個紅框匯中的值部分輸入后(也可以不輸入),點擊生成按鈕即可生成函數字符串,copy后放到需要的位置即可;如下為幾個常用的函數:
- ${__time(,)}:獲取當前時間的毫秒數;
- ${__time(,time_ms)}:獲取當前時間的毫秒數並存入參數
time_ms
中; - ${__time(/1000,)}:獲取當前時間的秒數;
- ${__time(/1000,time_s)}:獲取當前時間的秒數並存入參數
time_s
中; - ${__time(yyyy-MM-dd,)}:獲取當前日期;
- ${__time(yyyy-MM-dd,time_date1)}:獲取當前日期並存入參數
time_date1
中; - ${__time(yyyy-MM-dd HH:mm:ss,)}:獲取當前時間,固定格式;
- ${__time(yyyyMMddHHmmss,time_2)}:獲取當前時間,固定格式,並存入參數
time_2
中; - ${__time(YMDHMS,)}:獲取當前時間,固定格式
范例如下(范例中均為Debug sampler):
結果如下:
前幾個請求值是符合要求的,最后一個Debug Sampler中的時間參數值也和預期一致;