2013-08-02 125 views
3

我正在處理API響應中的日期。來自API的日期在EST。我需要將EST(技術上的EDT)日期轉換爲UTC,然後將其與UTC值格式的另一個API響應日期進行比較jmeter將日期從EST轉換爲UTC

我正在用JMeter中的Javascript來做到這一點。我有一個「BSF PostProcessor」作爲我的「HTTP Request」採樣器的一個孩子。

我輸入: 結束日期= 2014-01-31T23:59:59

我嘗試了一些選擇,但他們沒有得到我,我期待值。他們都回來我調試採樣器..

myNewDate =無效的日期

DT1 =無效的日期

vars.put("myendDate", vars.get("endDate")); 
var dt = new Date('myendDate'); 
vars.put("dt1", dt.toUTCString()); 

var myDate = new Date('${endDate}'); 
vars.put("myNewDate", myDate.toUTCString()); 


var myDate = new Date('${endDate}'); 
myDate.toISOString(); 
vars.put("myDate1", myDate); 

我覺得我的BSF PostProcessor中使用JavaScript作爲語言有困難創建Date對象。

請輸入任何內容?

+0

你能顯示輸入格式嗎? –

+0

這是我的輸入我的輸入:endDate = 2014-01-31T23:59:59 – Adi

回答

4

添加Groovy的all.jar在到JMeter的/ lib文件夾

並使用JSR223Sampler使用Groovy和編譯緩存鍵和下面的代碼:

import java.text.SimpleDateFormat; 
import java.util.TimeZone; 
import java.util.Date; 

SimpleDateFormat estFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); 
SimpleDateFormat gmtFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); 
TimeZone gmtTime = TimeZone.getTimeZone("GMT"); 
TimeZone estTime = TimeZone.getTimeZone("EST"); 
estFormat.setTimeZone(estTime); 
gmtFormat.setTimeZone(gmtTime); 
String endDate = vars.get("endDate"); 
Date endDateAsDate= estFormat.parse(endDate); 
vars.put("dt1", gmtFormat.format(endDateAsDate)); 

然後,您可以用$ {} DT1

+0

令人驚歎!非常感謝你,它按我的意願工作。在你的代碼中的小錯字.. estFormat.setTimeZone(estTime); gmtFormat.setTimeZone(gmtTime); – Adi

+0

我是C#.net遷移到JMeter ..感謝您將我指向Groovy庫。我現在可以編寫實際的代碼而不是處理javascript! – Adi

+0

歡迎來到jmeter :) –

相關問題